3 | | == Introduction == |
4 | | |
5 | | libcaca is a graphics library that outputs text instead of pixels, so that it can work on older video cards or text terminals. It is not unlike the famous [http://aa-project.sourceforge.net/aalib/ AAlib] library, with the following improvements: |
6 | | |
7 | | * Unicode support |
8 | | * 2048 available colours (some devices can only handle 16) |
9 | | * dithering of colour images |
10 | | * advanced text canvas operations (blitting, rotations) |
11 | | |
12 | | Libcaca works in a text terminal (and should thus work on all Unix systems including Mac OS X) using the S-Lang or ncurses libraries. It also works natively on DOS and Windows. |
13 | | |
14 | | Libcaca was written by Sam Hocevar and Jean-Yves Lamoureux. It is free software, and can be used, modified and distributed under the terms of the [http://sam.zoy.org/wtfpl/ Do What The Fuck You Want To Public License]. |
| 3 | The software we create: |
| 4 | * [wiki:libcaca], the industry-standard colour ASCII-art library |
| 5 | * [wiki:zzuf] |
| 6 | * [wiki:neercs] |
| 7 | * [wiki:toilet] |
| 8 | * [wiki:libpipi], an image processing library |
| 9 | * [wiki:PWNtcha] |
46 | | |
47 | | [[Image(source:/www/img/sample.png, align=right, border=2)]] |
48 | | |
49 | | == Screenshots == |
50 | | |
51 | | {{{ |
52 | | #!comment |
53 | | Change those fucking screenshots to proper Trac stuff when 0.11 is in Debian: |
54 | | [[Image(source:/www/img/tn-stitch-80x45.jpeg, link=/img/stitch-80x45.png)]] |
55 | | }}} |
56 | | |
57 | | Here are a few libcaca screenshots. |
58 | | |
59 | | {{{ |
60 | | #!html |
61 | | <table cellspacing="5" border="0"> |
62 | | <tr> |
63 | | <td align="center"> |
64 | | <a href="/browser/www/img/stitch-80x45.png"><img alt="cacaview" |
65 | | width="73" height="90" |
66 | | src="/browser/www/img/tn-stitch-80x45.jpeg?format=raw" /></a> |
67 | | <br /><small><code>cacaview</code></small> |
68 | | </td> |
69 | | <td align="center"> |
70 | | <a href="/browser/www/img/cacaball-80x50.png"><img alt="cacaball" |
71 | | width="101" height="90" |
72 | | src="/browser/www/img/tn-cacaball-80x50.jpeg?format=raw" /></a> |
73 | | <br /><small><code>cacaball</code></small> |
74 | | </td> |
75 | | <td align="center"> |
76 | | <a href="/browser/www/img/cacaplas-80x50.png"><img alt="cacaplas" |
77 | | width="101" height="90" |
78 | | src="/browser/www/img/tn-cacaplas-80x50.jpeg?format=raw" /></a> |
79 | | <br /><small><code>cacaplas</code></small> |
80 | | </td> |
81 | | <td align="center"> |
82 | | <a href="/browser/www/img/truecolor-32x16.png"><img alt="truecolor" |
83 | | width="87" height="90" |
84 | | src="/browser/www/img/tn-truecolor-32x16.jpeg?format=raw" /></a> |
85 | | <br /><small>TrueColor</small> |
86 | | </td> |
87 | | <td align="center"> |
88 | | </td> |
89 | | </tr> |
90 | | <tr> |
91 | | <td align="center"> |
92 | | <a href="/browser/www/img/unicode-80x24.png"><img alt="unicode" |
93 | | width="120" height="75" |
94 | | src="/browser/www/img/tn-unicode-80x24.jpeg?format=raw" /></a> |
95 | | <br /><small>Unicode</small> |
96 | | </td> |
97 | | <td align="center"> |
98 | | <a href="/browser/www/img/swallow-80x32.png"><img alt="swallow" |
99 | | width="120" height="81" |
100 | | src="/browser/www/img/tn-swallow-80x32.jpeg?format=raw" /></a> |
101 | | <br /><small>swallowing applications</small> |
102 | | </td> |
103 | | <td align="center"> |
104 | | <a href="/browser/www/img/rotate.png"><img alt="rotation" |
105 | | width="75" height="90" |
106 | | src="/browser/www/img/tn-rotate.jpeg?format=raw" /></a> |
107 | | <br /><small>canvas rotation</small> |
108 | | </td> |
109 | | <td align="center"> |
110 | | <a href="/browser/www/img/export.png"><img alt="rotation" |
111 | | width="78" height="90" |
112 | | src="/browser/www/img/tn-export.jpeg?format=raw" /></a> |
113 | | <br /><small>ANSI to PNG</small> |
114 | | </td> |
115 | | <td align="center"> |
116 | | </td> |
117 | | </tr> |
118 | | </table> |
119 | | }}} |
120 | | |
121 | | == Why? == |
122 | | |
123 | | {{{ |
124 | | #!html |
125 | | <blockquote><p> |
126 | | Que dites-vous ?... C’est inutile ?... Je le sais ! |
127 | | <br />Mais on ne se bat pas dans l’espoir du succès ! |
128 | | <br />Non ! non, c’est bien plus beau lorsque c’est inutile ! |
129 | | <br /><small> -- Edmond Rostand, <i>Cyrano de Bergerac</i> </small> |
130 | | </p></blockquote> |
131 | | }}} |
132 | | |
133 | | I am perfectly aware that libcaca is the waste of time it looks to be. No need to tell me about that. I urge you to read Théophile Gautier’s preface to ''Mademoiselle de Maupin'', which also gives an excellent explanation for the name “libcaca”: |
134 | | |
135 | | {{{ |
136 | | #!html |
137 | | <blockquote><p> |
138 | | Il n’y a rien de vraiment beau que ce qui ne peut servir à rien ; tout ce |
139 | | qui est utile est laid ; car c’est l’expression de quelque besoin ; et ceux |
140 | | de l’homme sont ignobles et dégoûtants, comme sa pauvre et infirme nature. - |
141 | | L’endroit le plus utile d’une maison, ce sont les latrines. |
142 | | </p></blockquote> |
143 | | }}} |
144 | | |
145 | | As for the name “libcucul”, please refer to the pioneer of modernist Polish fiction: |
146 | | |
147 | | {{{ |
148 | | #!html |
149 | | <blockquote><p> |
150 | | Mais contre le cucul, il n’y a pas de refuge. Courez après moi |
151 | | si vous voulez, je m’enfuis la gueule entre les mains. Et voilà, |
152 | | tralala, Zut à celui qui le lira ! |
153 | | <br /><small> -- Witold Gombrowicz, <i>Ferdydurke</i> </small> |
154 | | </p></blockquote> |
155 | | }}} |