25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. <?php header("Content-Type: text/html; charset=utf-8"); ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <meta name="GENERATOR" content="vim" />
  8. <meta name="Author" content="sam@zoy.org (Sam Hocevar)" />
  9. <meta name="Description" content="libcaca - Colour AsCii Art library" />
  10. <meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" />
  11. <title>libcaca - Colour AsCii Art library</title>
  12. <link rel="icon" type="image/x-icon" href="/favicon.ico" />
  13. <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
  14. <link rel="stylesheet" type="text/css" href="/main.css" />
  15. </head>
  16. <body>
  17. <?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?>
  18. <img src="logo-caca.png" width="128" height="128"
  19. alt="libcaca logo" class="caca" />
  20. <h2> Introduction </h2>
  21. <p> <i>libcaca</i> is a graphics library that outputs text instead of pixels,
  22. so that it can work on older video cards or text terminals. It is not unlike
  23. the famous <a href="http://aa-project.sourceforge.net/aalib/">AAlib</a>
  24. library, with the following improvements: </p>
  25. <ul>
  26. <li> Unicode support </li>
  27. <li> 2048 available colours (some devices can only handle 16) </li>
  28. <li> dithering of colour images </li>
  29. <li> advanced text canvas operations (blitting, rotations) </li>
  30. </ul>
  31. <p> Libcaca works in a text terminal (and should thus work on all Unix
  32. systems including Mac OS X) using the S-Lang or ncurses libraries. It also
  33. works natively on DOS and Windows. </p>
  34. <p> Libcaca was written by Sam Hocevar &lt;<a
  35. href="mailto:sam@zoy.org">sam@zoy.org</a>&gt; and Jean-Yves Lamoureux
  36. &lt;<a href="mailto:jylam@lnxscene.org">jylam@lnxscene.org</a>&gt;. It is
  37. <a href="http://www.gnu.org/philosophy/free-sw.html">free software</a>,
  38. and can be used, modified and distributed under the terms of the <a
  39. href="http://sam.zoy.org/wtfpl/">Do What The Fuck You Want To Public
  40. License</a>. </p>
  41. <p style="text-align: center;">
  42. <a href="http://www.ohloh.net/projects/9011?ref=WidgetProjectThinBadge"><img src="http://www.ohloh.net/projects/9011/widgets/project_thin_badge.gif" width="100" height="16" alt="libcaca Ohloh metrics" /></a>
  43. <a href="http://www.ohloh.net/projects/9018?ref=WidgetProjectThinBadge"><img src="http://www.ohloh.net/projects/9018/widgets/project_thin_badge.gif" width="100" height="16" alt="toilet Ohloh metrics" /></a>
  44. </p>
  45. <h2> News </h2>
  46. <ul>
  47. <li> <b>18 May 2008</b>: <a href="/wiki/zzuf">zzuf</a> 0.11 </li>
  48. <li> <b>1 Apr 2008</b>: libcaca to be <a href="http://blog.thebehrens.net/2008/04/01/new-highly-portable-canvas-backend/">OpenOffice.org’s official multiplatform rendering backend</a> </li>
  49. <li> <b>24 Feb 2008</b>: we are now using <a href="/wiki">Trac</a>! </li>
  50. <li> <b>24 Jan 2008</b>: <a href="/labs/img2oric.html">img2oric</a>, the
  51. first Caca Labs piece of research software </li>
  52. <li> <b>28 Nov 2007</b>: libcaca 0.99.beta13 </li>
  53. <li> <b>24 Oct 2007</b>: Report on <a href="/cacacon07/">CacaCon’07</a>, the
  54. first international libcaca conference. </li>
  55. <!-- old news
  56. <li> <b>30 Sep 2007</b>: libcaca 0.99.beta12 </li>
  57. <li> <b>16 Nov 2006</b>: libcaca 0.99.beta11 </li>
  58. <li> <b>16 Nov 2006</b>: <a href="/toilet.html">TOIlet</a> 0.1 </li>
  59. <li> <b>12 Nov 2006</b>: libcaca 0.99.beta10 </p>
  60. <li> <b>6 Nov 2006</b>: libcaca 0.99.beta9 </p>
  61. <li> <b>22 Oct 2006</b>: libcaca 0.99.beta8 </p>
  62. <li> <b>4 Oct 2006</b>: libcaca 0.99.beta7 </p>
  63. -->
  64. </ul>
  65. <img src="img/sample.png" width="128" height="128"
  66. alt="libcaca rendering sample" class="caca" />
  67. <h2> Screenshots </h2>
  68. <p> Here are a few <i>libcaca</i> screenshots. </p>
  69. <table cellspacing="5" border="0">
  70. <tr>
  71. <td align="center">
  72. <a href="img/stitch-80x45.png"><img alt="cacaview"
  73. width="73" height="90"
  74. src="img/tn-stitch-80x45.jpeg" /></a>
  75. <br /><small><code>cacaview</code></small>
  76. </td>
  77. <td align="center">
  78. <a href="img/cacaball-80x50.png"><img alt="cacaball"
  79. width="101" height="90"
  80. src="img/tn-cacaball-80x50.jpeg" /></a>
  81. <br /><small><code>cacaball</code></small>
  82. </td>
  83. <td align="center">
  84. <a href="img/cacaplas-80x50.png"><img alt="cacaplas"
  85. width="101" height="90"
  86. src="img/tn-cacaplas-80x50.jpeg" /></a>
  87. <br /><small><code>cacaplas</code></small>
  88. </td>
  89. <td align="center">
  90. <a href="img/truecolor-32x16.png"><img alt="truecolor"
  91. width="87" height="90"
  92. src="img/tn-truecolor-32x16.jpeg" /></a>
  93. <br /><small>TrueColor</small>
  94. </td>
  95. <td align="center">
  96. </td>
  97. </tr>
  98. <tr>
  99. <td align="center">
  100. <a href="img/unicode-80x24.png"><img alt="unicode"
  101. width="120" height="75"
  102. src="img/tn-unicode-80x24.jpeg" /></a>
  103. <br /><small>Unicode</small>
  104. </td>
  105. <td align="center">
  106. <a href="img/swallow-80x32.png"><img alt="swallow"
  107. width="120" height="81"
  108. src="img/tn-swallow-80x32.jpeg" /></a>
  109. <br /><small>swallowing applications</small>
  110. </td>
  111. <td align="center">
  112. <a href="img/rotate.png"><img alt="rotation"
  113. width="75" height="90"
  114. src="img/tn-rotate.jpeg" /></a>
  115. <br /><small>canvas rotation</small>
  116. </td>
  117. <td align="center">
  118. </td>
  119. <td align="center">
  120. </td>
  121. </tr>
  122. </table>
  123. <p> See also the various export formats, generated from an old
  124. <a href="lc-mw1.ans">ANSI file</a>:
  125. <a href="export.png">PNG</a> (through TGA),
  126. <a href="export.html">HTML</a>,
  127. <a href="export.svg">SVG</a>,
  128. <a href="export.ps">PostScript</a>.
  129. </p>
  130. <!--
  131. <p> Here are my first libcaca attempts. The first image is,
  132. <code>cacaview</code>, the libcaca image viewer. Then, two
  133. screenshots of my first port of an application to libcaca: the <a
  134. href="http://www.videolan.org/vlc/">VLC</a> media player. The last
  135. screenshots are from <code>cacafire</code> (the libcaca port of aafire) and
  136. <code>cacaball</code> (a mini metaballs demo). </p>
  137. <table cellspacing="5" border="0">
  138. <tr>
  139. <td align="center">
  140. <a href="caca-stitch.png"><img alt="cacaview"
  141. width="78" height="90"
  142. src="tn-caca-stitch.jpeg" /><br /><code>cacaview</code></a>
  143. </td>
  144. <td align="center">
  145. <a href="caca-vlc.png"><img alt="VLC playing the Matrix: Revolutions"
  146. width="120" height="74"
  147. src="tn-caca-vlc.jpeg" /><br />VLC media player</a>
  148. </td>
  149. <td align="center">
  150. <a href="caca-vlc3.png"><img alt="VLC playing a Dolby trailer"
  151. width="120" height="74"
  152. src="tn-caca-vlc3.jpeg" /><br />VLC media player</a>
  153. </td>
  154. <td align="center">
  155. <a href="caca-fire.png"><img alt="cacafire"
  156. width="120" height="87"
  157. src="tn-caca-fire.jpeg" /><br /><code>cacafire</code></a>
  158. </td>
  159. <td align="center">
  160. <a href="caca-ball.png"><img alt="cacaball"
  161. width="104" height="90"
  162. src="tn-caca-ball.jpeg" /><br /><code>cacaball</code></a>
  163. </td>
  164. </tr>
  165. </table>
  166. <p> As with all image processing applications, I needed the obligatory <a
  167. href="http://www-2.cs.cmu.edu/~chuck/lennapg/">Lenna</a> samples. From
  168. left to right: the currently in development Floyd-Steinberg dithering, the
  169. antialiasing introduced in libcaca 0.5, the new renderer in libcaca 0.2, no
  170. dithering, ordered dithering, random dithering. </p>
  171. <table cellspacing="5" border="0">
  172. <tr>
  173. <td align="center">
  174. <a href="lenna-fs.png"><img alt="Lenna (Floyd-Steinberg)"
  175. width="87" height="90"
  176. src="tn-lenna-fs.jpeg" /><br />Floyd-Steinberg</a>
  177. </td>
  178. <td align="center">
  179. <a href="lenna-antialias.png"><img alt="Lenna (antialiased)"
  180. width="97" height="90"
  181. src="tn-lenna-antialias.jpeg" /><br />antialiasing</a>
  182. </td>
  183. <td align="center">
  184. <a href="lenna-new.png"><img alt="Lenna (new renderer)"
  185. width="99" height="90"
  186. src="tn-lenna-new.jpeg" /><br />new renderer</a>
  187. </td>
  188. <td align="center">
  189. <a href="lenna-nodither.png"><img alt="Lenna (no dithering)"
  190. width="99" height="90"
  191. src="tn-lenna-nodither.jpeg" /><br />no dithering</a>
  192. </td>
  193. <td align="center">
  194. <a href="lenna-ordered.png"><img alt="Lenna (ordered dithering)"
  195. width="99" height="90"
  196. src="tn-lenna-ordered.jpeg" /><br />ordered dithering</a>
  197. </td>
  198. <td align="center">
  199. <a href="lenna-random.png"><img alt="Lenna (random dithering)"
  200. width="99" height="90"
  201. src="tn-lenna-random.jpeg" /><br />random dithering</a>
  202. </td>
  203. </tr>
  204. </table>
  205. <p> Here are a few examples of my libcaca patch for libSDL. Once there is a
  206. libcaca backend for <a href="http://www.libsdl.org">libSDL</a>, any program
  207. using SDL can automatically benefit from libcaca’s rendering routines. These
  208. examples show <a href="http://www.frozen-bubble.org/">Frozen Bubble</a>, the
  209. <a href="http://sabre.cobite.com/">SABRE</a> flight simulator, and the famous
  210. <a href="http://www.idsoftware.com/games/doom/">Doom</a>. Frozen Bubble is
  211. fully playable, but SABRE and Doom aren’t much due to the Ctrl and Shift keys
  212. not being recognized (see the TODO list about that). </p>
  213. <table cellspacing="5" border="0">
  214. <tr>
  215. <td align="center">
  216. <a href="caca-fb.png"><img alt="ASCII art Frozen Bubble"
  217. width="120" height="90"
  218. src="tn-caca-fb.jpeg" /><br />Frozen Bubble</a>
  219. </td>
  220. <td align="center">
  221. <a href="caca-sabre.png"><img alt="the SABRE flight simulator"
  222. width="120" height="90"
  223. src="tn-caca-sabre.jpeg" /><br />SABRE</a>
  224. </td>
  225. <td align="center">
  226. <a href="caca-doom.png"><img alt="the Doom splash screen in ASCII art"
  227. width="120" height="90"
  228. src="tn-caca-doom.jpeg" /><br />Doom splash screen</a>
  229. </td>
  230. <td align="center">
  231. <a href="caca-doom2.png"><img alt="Doom in ASCII art"
  232. width="120" height="90"
  233. src="tn-caca-doom2.jpeg" /><br />first Doom level</a>
  234. </td>
  235. </tr>
  236. </table>
  237. <h2> Download libcaca </h2>
  238. <p> libcaca is already in the Debian sid distribution. Debian woody users or
  239. sid users in a hurry may use one of the following apt sources: (sorry, sarge
  240. is not supported yet) </p>
  241. <table class="leftmenu" cellspacing="5" cellpadding="0">
  242. <tr>
  243. <td class="nowrap" valign="top">
  244. <code>
  245. deb http://sam.zoy.org/projects/debian woody main<br />
  246. deb-src http://sam.zoy.org/projects/debian woody main<br />
  247. <br />
  248. deb http://sam.zoy.org/projects/debian sid main<br />
  249. deb-src http://sam.zoy.org/projects/debian sid main<br />
  250. </code>
  251. </td>
  252. </tr>
  253. </table>
  254. <p> Users of RPM-based distributions (Red Hat, Fedora, Mandrake) may find RPM
  255. packages on the <a href="http://yarrow.freshrpms.net/rpm.html?id=552">Fresh
  256. RPMs</a> page. If no package is available, you are encouraged
  257. to build packages for your system using this SRPM (<a
  258. href="libcaca-0.9-1.src.rpm">libcaca-0.9-1.src.rpm</a>, 176KB) and this simple
  259. command line: </p>
  260. <table class="leftmenu" cellspacing="5" cellpadding="0">
  261. <tr>
  262. <td class="nowrap" valign="top">
  263. <code>rpm -<!>-rebuild libcaca-0.9-1.src.rpm</code>
  264. </td>
  265. </tr>
  266. </table>
  267. <p> BSD users should see the <a
  268. href="http://www.netbsd.org/packages/graphics/libcaca/README.html">NetBSD port
  269. page</a> and the <a href="http://www.freshports.org/graphics/libcaca/">FreeBSD
  270. port page</a> (I am not aware of an OpenBSD port yet, but <a
  271. href="http://news.gw.com/openbsd.ports/15502">this email</a> has
  272. information on it), Gentoo users may find information on the <a
  273. href="http://gentoo-portage.com/browse-program.php?program=6273">Gentoo
  274. portage</a> and Slackware users have a package on <a
  275. href="http://www.linuxpackages.net/pkg_details.php?id=2144">linuxpackages.net</a>.
  276. </p>
  277. <h2> Patch for libSDL </h2>
  278. <p> This simple patch was quickly hacked from the AAlib video
  279. driver. Apply it to the libSDL sources and configuree libSDL with
  280. <code>-<!>-enable-video-caca</code>. Then use the <code>SDL_VIDEODRIVER</code>
  281. environment variable to run your SDL programs with libcaca output, for
  282. instance Frozen Bubble: </p>
  283. <table class="leftmenu" cellspacing="5" cellpadding="0">
  284. <tr>
  285. <td class="nowrap" valign="top">
  286. <code>SDL_VIDEODRIVER=caca frozen-bubble</code>
  287. </td>
  288. </tr>
  289. </table>
  290. <p> Download <a href="patch-libsdl1.2-libcaca0.7.diff">patch-libsdl1.2-libcaca0.7.diff</a> (to be used with the Debian unstable SDL sources and libcaca 0.7. </p>
  291. <h2> Patches for VLC, xine, mplayer... </h2>
  292. <p> The libcaca patch for the <a href="http://www.videolan.org/vlc/">VLC</a>
  293. media player was already applied upstream. Check the CVS version. </p>
  294. <p> There is a work in progress for <a href="http://xine.sf.net/">xine</a>
  295. called cacaxine (see <a href="http://sourceforge.net/mailarchive/forum.php?thread_id=3605187&amp;forum_id=7131">this email</a>). Zeeshan Ali wrote a
  296. <a href="http://gstreamer.sf.net/">GStreamer</a> plugin. I am not
  297. aware of an <a href="http://mplayerhq.hu/">MPlayer</a> patch yet (but you
  298. should not be using MPlayer anyway, because it sucks). </p>
  299. <h2> Development </h2>
  300. -->
  301. <h2> Why? </h2>
  302. <blockquote><p>
  303. Que dites-vous ?... C’est inutile ?... Je le sais !
  304. <br />Mais on ne se bat pas dans l’espoir du succès !
  305. <br />Non ! non, c’est bien plus beau lorsque c’est inutile !
  306. <br /><small> -- Edmond Rostand, <i>Cyrano de Bergerac</i> </small>
  307. </p></blockquote>
  308. <p> I am perfectly aware that <i>libcaca</i> is the waste of time it looks to
  309. be. No need to tell me about that. I urge you to read Théophile Gautier’s
  310. preface to <i>Mademoiselle de Maupin</i>, which also gives an excellent
  311. explanation for the name “libcaca”: </p>
  312. <blockquote><p>
  313. Il n’y a rien de vraiment beau que ce qui ne peut servir à rien ; tout ce
  314. qui est utile est laid ; car c’est l’expression de quelque besoin ; et ceux
  315. de l’homme sont ignobles et dégoûtants, comme sa pauvre et infirme nature. -
  316. L’endroit le plus utile d’une maison, ce sont les latrines.
  317. </p></blockquote>
  318. <p> As for the name “libcucul”, please refer to the pioneer of modernist
  319. Polish fiction: </p>
  320. <blockquote><p>
  321. Mais contre le cucul, il n’y a pas de refuge. Courez après moi
  322. si vous voulez, je m’enfuis la gueule entre les mains. Et voilà,
  323. tralala, Zut à celui qui le lira !
  324. <br /><small> -- Witold Gombrowicz, <i>Ferdydurke</i> </small>
  325. </p></blockquote>
  326. <?php $rev = '$Id$';
  327. include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?>
  328. </body>
  329. </html>