source: www/index.html @ 1130

Last change on this file since 1130 was 1130, checked in by Sam Hocevar, 17 years ago
  • Fix XHTML and CSS syntax.
  • Property svn:keywords set to Id
File size: 12.5 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> 4096 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  </tr>
94</table>
95
96<p> See also the various export formats:
97  <a href="export.png">PNG</a> (through TGA),
98  <a href="export.html">HTML</a>,
99  <a href="export.svg">SVG</a>,
100  <a href="export.ps">PostScript</a>.
101</p>
102
103<!--
104<p> Here are my first libcaca attempts. The first image is,
105<code>cacaview</code>, the libcaca image viewer. Then, two
106screenshots of my first port of an application to libcaca: the <a
107href="http://www.videolan.org/vlc/">VLC</a> media player. The last
108screenshots are from <code>cacafire</code> (the libcaca port of aafire) and
109<code>cacaball</code> (a mini metaballs demo). </p>
110
111<table cellspacing="5" border="0">
112  <tr>
113    <td align="center">
114      <a href="caca-stitch.png"><img alt="cacaview"
115         width="78" height="90"
116         src="tn-caca-stitch.jpeg" /><br /><code>cacaview</code></a>
117    </td>
118    <td align="center">
119      <a href="caca-vlc.png"><img alt="VLC playing the Matrix: Revolutions"
120         width="120" height="74"
121         src="tn-caca-vlc.jpeg" /><br />VLC media player</a>
122    </td>
123    <td align="center">
124      <a href="caca-vlc3.png"><img alt="VLC playing a Dolby trailer"
125         width="120" height="74"
126         src="tn-caca-vlc3.jpeg" /><br />VLC media player</a>
127    </td>
128    <td align="center">
129      <a href="caca-fire.png"><img alt="cacafire"
130         width="120" height="87"
131         src="tn-caca-fire.jpeg" /><br /><code>cacafire</code></a>
132    </td>
133    <td align="center">
134      <a href="caca-ball.png"><img alt="cacaball"
135         width="104" height="90"
136         src="tn-caca-ball.jpeg" /><br /><code>cacaball</code></a>
137    </td>
138  </tr>
139</table>
140
141<p> As with all image processing applications, I needed the obligatory <a
142href="http://www-2.cs.cmu.edu/~chuck/lennapg/">Lenna</a> samples. From
143left to right: the currently in development Floyd-Steinberg dithering, the
144antialiasing introduced in libcaca 0.5, the new renderer in libcaca 0.2, no
145dithering, ordered dithering, random dithering. </p>
146
147<table cellspacing="5" border="0">
148  <tr>
149    <td align="center">
150      <a href="lenna-fs.png"><img alt="Lenna (Floyd-Steinberg)"
151         width="87" height="90"
152         src="tn-lenna-fs.jpeg" /><br />Floyd-Steinberg</a>
153    </td>
154    <td align="center">
155      <a href="lenna-antialias.png"><img alt="Lenna (antialiased)"
156         width="97" height="90"
157         src="tn-lenna-antialias.jpeg" /><br />antialiasing</a>
158    </td>
159    <td align="center">
160      <a href="lenna-new.png"><img alt="Lenna (new renderer)"
161         width="99" height="90"
162         src="tn-lenna-new.jpeg" /><br />new renderer</a>
163    </td>
164    <td align="center">
165      <a href="lenna-nodither.png"><img alt="Lenna (no dithering)"
166         width="99" height="90"
167         src="tn-lenna-nodither.jpeg" /><br />no dithering</a>
168    </td>
169    <td align="center">
170      <a href="lenna-ordered.png"><img alt="Lenna (ordered dithering)"
171         width="99" height="90"
172         src="tn-lenna-ordered.jpeg" /><br />ordered dithering</a>
173    </td>
174    <td align="center">
175      <a href="lenna-random.png"><img alt="Lenna (random dithering)"
176         width="99" height="90"
177         src="tn-lenna-random.jpeg" /><br />random dithering</a>
178    </td>
179  </tr>
180</table>
181
182<p> Here are a few examples of my libcaca patch for libSDL. Once there is a
183libcaca backend for <a href="http://www.libsdl.org">libSDL</a>, any program
184using SDL can automatically benefit from libcaca’s rendering routines. These
185examples show <a href="http://www.frozen-bubble.org/">Frozen Bubble</a>, the
186<a href="http://sabre.cobite.com/">SABRE</a> flight simulator, and the famous
187<a href="http://www.idsoftware.com/games/doom/">Doom</a>. Frozen Bubble is
188fully playable, but SABRE and Doom aren’t much due to the Ctrl and Shift keys
189not being recognized (see the TODO list about that). </p>
190
191<table cellspacing="5" border="0">
192  <tr>
193    <td align="center">
194      <a href="caca-fb.png"><img alt="ASCII art Frozen Bubble"
195         width="120" height="90"
196         src="tn-caca-fb.jpeg" /><br />Frozen Bubble</a>
197    </td>
198    <td align="center">
199      <a href="caca-sabre.png"><img alt="the SABRE flight simulator"
200         width="120" height="90"
201         src="tn-caca-sabre.jpeg" /><br />SABRE</a>
202    </td>
203    <td align="center">
204      <a href="caca-doom.png"><img alt="the Doom splash screen in ASCII art"
205         width="120" height="90"
206         src="tn-caca-doom.jpeg" /><br />Doom splash screen</a>
207    </td>
208    <td align="center">
209      <a href="caca-doom2.png"><img alt="Doom in ASCII art"
210         width="120" height="90"
211         src="tn-caca-doom2.jpeg" /><br />first Doom level</a>
212    </td>
213  </tr>
214</table>
215
216<h2> Download libcaca </h2>
217
218<p> libcaca is already in the Debian sid distribution. Debian woody users or
219sid users in a hurry may use one of the following apt sources: (sorry, sarge
220is not supported yet) </p>
221
222<table class="leftmenu" cellspacing="5" cellpadding="0">
223  <tr>
224    <td class="nowrap" valign="top">
225      <code>
226        deb http://sam.zoy.org/projects/debian woody main<br />
227        deb-src http://sam.zoy.org/projects/debian woody main<br />
228        <br />
229        deb http://sam.zoy.org/projects/debian sid main<br />
230        deb-src http://sam.zoy.org/projects/debian sid main<br />
231      </code>
232    </td>
233  </tr>
234</table>
235
236<p> Users of RPM-based distributions (Red Hat, Fedora, Mandrake) may find RPM
237packages on the <a href="http://yarrow.freshrpms.net/rpm.html?id=552">Fresh
238RPMs</a> page. If no package is available, you are encouraged
239to build packages for your system using this SRPM (<a
240href="libcaca-0.9-1.src.rpm">libcaca-0.9-1.src.rpm</a>, 176KB) and this simple
241command line: </p>
242
243<table class="leftmenu" cellspacing="5" cellpadding="0">
244  <tr>
245    <td class="nowrap" valign="top">
246      <code>rpm -<!>-rebuild libcaca-0.9-1.src.rpm</code>
247    </td>
248  </tr>
249</table>
250
251<p> BSD users should see the <a
252href="http://www.netbsd.org/packages/graphics/libcaca/README.html">NetBSD port
253page</a> and the <a href="http://www.freshports.org/graphics/libcaca/">FreeBSD
254port page</a> (I am not aware of an OpenBSD port yet, but <a
255href="http://news.gw.com/openbsd.ports/15502">this email</a> has
256information on it), Gentoo users may find information on the <a
257href="http://gentoo-portage.com/browse-program.php?program=6273">Gentoo
258portage</a> and Slackware users have a package on <a
259href="http://www.linuxpackages.net/pkg_details.php?id=2144">linuxpackages.net</a>.
260</p>
261
262<h2> Patch for libSDL </h2>
263
264<p> This simple patch was quickly hacked from the AAlib video
265driver. Apply it to the libSDL sources and configuree libSDL with
266<code>-<!>-enable-video-caca</code>. Then use the <code>SDL_VIDEODRIVER</code>
267environment variable to run your SDL programs with libcaca output, for
268instance Frozen Bubble: </p>
269
270<table class="leftmenu" cellspacing="5" cellpadding="0">
271  <tr>
272    <td class="nowrap" valign="top">
273      <code>SDL_VIDEODRIVER=caca frozen-bubble</code>
274    </td>
275  </tr>
276</table>
277
278<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>
279
280<h2> Patches for VLC, xine, mplayer... </h2>
281
282<p> The libcaca patch for the <a href="http://www.videolan.org/vlc/">VLC</a>
283media player was already applied upstream. Check the CVS version. </p>
284
285<p> There is a work in progress for <a href="http://xine.sf.net/">xine</a>
286called cacaxine (see <a href="http://sourceforge.net/mailarchive/forum.php?thread_id=3605187&amp;forum_id=7131">this email</a>). Zeeshan Ali wrote a
287<a href="http://gstreamer.sf.net/">GStreamer</a> plugin. I am not
288aware of an <a href="http://mplayerhq.hu/">MPlayer</a> patch yet (but you
289should not be using MPlayer anyway, because it sucks). </p>
290
291<h2> Development </h2>
292
293-->
294
295<h2> Why? </h2>
296
297<blockquote><p>
298Que dites-vous ?... C’est inutile ?... Je le sais !
299<br />Mais on ne se bat pas dans l’espoir du succès !
300<br />Non ! non, c’est bien plus beau lorsque c’est inutile !
301<br /><small> -- Edmond Rostand, <i>Cyrano de Bergerac</i> </small>
302</p></blockquote>
303
304<p> I am perfectly aware that <i>libcaca</i> is the waste of time it looks to
305be. No need to tell me about that. I urge you to read Théophile Gautier’s
306preface to <i>Mademoiselle de Maupin</i>, which also gives an excellent
307explanation for the name “libcaca”: </p>
308
309<blockquote><p>
310Il n’y a rien de vraiment beau que ce qui ne peut servir à rien ; tout ce
311qui est utile est laid ; car c’est l’expression de quelque besoin ; et ceux
312de l’homme sont ignobles et dégoûtants, comme sa pauvre et infirme nature. -
313L’endroit le plus utile d’une maison, ce sont les latrines.
314</p></blockquote>
315
316<p> As for the name “libcucul”, please refer to the pioneer of modernist
317Polish fiction: </p>
318
319<blockquote><p>
320Mais contre le cucul, il n’y a pas de refuge. Courez après moi
321si vous voulez, je m’enfuis la gueule entre les mains. Et voilà,
322tralala, Zut à celui qui le lira !
323<br /><small> -- Witold Gombrowicz, <i>Ferdydurke</i> </small>
324</p></blockquote>
325
326<?php $rev = '$Id: index.html 1130 2006-09-28 22:43:36Z sam $';
327      include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?>
328
329</body>
330</html>
Note: See TracBrowser for help on using the repository browser.