source: www/index.html @ 1375

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