| 1 | [[Image(source:/www/logo-caca.png, align=right, border=2, alt="libcaca logo")]] |
| 2 | |
| 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]. |
| 15 | |
| 16 | [[Image(source:/www/img/sample.png, align=right, border=2)]] |
| 17 | |
| 18 | == Screenshots == |
| 19 | |
| 20 | {{{ |
| 21 | #!comment |
| 22 | Change those fucking screenshots to proper Trac stuff when 0.11 is in Debian: |
| 23 | [[Image(source:/www/img/tn-stitch-80x45.jpeg, link=/img/stitch-80x45.png)]] |
| 24 | }}} |
| 25 | |
| 26 | Here are a few libcaca screenshots. |
| 27 | |
| 28 | {{{ |
| 29 | #!html |
| 30 | <table cellspacing="5" border="0"> |
| 31 | <tr> |
| 32 | <td align="center"> |
| 33 | <a href="/browser/www/img/stitch-80x45.png"><img alt="cacaview" |
| 34 | width="73" height="90" |
| 35 | src="/browser/www/img/tn-stitch-80x45.jpeg?format=raw" /></a> |
| 36 | <br /><small><code>cacaview</code></small> |
| 37 | </td> |
| 38 | <td align="center"> |
| 39 | <a href="/browser/www/img/cacaball-80x50.png"><img alt="cacaball" |
| 40 | width="101" height="90" |
| 41 | src="/browser/www/img/tn-cacaball-80x50.jpeg?format=raw" /></a> |
| 42 | <br /><small><code>cacaball</code></small> |
| 43 | </td> |
| 44 | <td align="center"> |
| 45 | <a href="/browser/www/img/cacaplas-80x50.png"><img alt="cacaplas" |
| 46 | width="101" height="90" |
| 47 | src="/browser/www/img/tn-cacaplas-80x50.jpeg?format=raw" /></a> |
| 48 | <br /><small><code>cacaplas</code></small> |
| 49 | </td> |
| 50 | <td align="center"> |
| 51 | <a href="/browser/www/img/truecolor-32x16.png"><img alt="truecolor" |
| 52 | width="87" height="90" |
| 53 | src="/browser/www/img/tn-truecolor-32x16.jpeg?format=raw" /></a> |
| 54 | <br /><small>TrueColor</small> |
| 55 | </td> |
| 56 | <td align="center"> |
| 57 | </td> |
| 58 | </tr> |
| 59 | <tr> |
| 60 | <td align="center"> |
| 61 | <a href="/browser/www/img/unicode-80x24.png"><img alt="unicode" |
| 62 | width="120" height="75" |
| 63 | src="/browser/www/img/tn-unicode-80x24.jpeg?format=raw" /></a> |
| 64 | <br /><small>Unicode</small> |
| 65 | </td> |
| 66 | <td align="center"> |
| 67 | <a href="/browser/www/img/swallow-80x32.png"><img alt="swallow" |
| 68 | width="120" height="81" |
| 69 | src="/browser/www/img/tn-swallow-80x32.jpeg?format=raw" /></a> |
| 70 | <br /><small>swallowing applications</small> |
| 71 | </td> |
| 72 | <td align="center"> |
| 73 | <a href="/browser/www/img/rotate.png"><img alt="rotation" |
| 74 | width="75" height="90" |
| 75 | src="/browser/www/img/tn-rotate.jpeg?format=raw" /></a> |
| 76 | <br /><small>canvas rotation</small> |
| 77 | </td> |
| 78 | <td align="center"> |
| 79 | <a href="/browser/www/img/export.png"><img alt="rotation" |
| 80 | width="78" height="90" |
| 81 | src="/browser/www/img/tn-export.jpeg?format=raw" /></a> |
| 82 | <br /><small>ANSI to PNG</small> |
| 83 | </td> |
| 84 | <td align="center"> |
| 85 | </td> |
| 86 | </tr> |
| 87 | </table> |
| 88 | }}} |
| 89 | |
| 98 | |
| 99 | == Why? == |
| 100 | |
| 101 | {{{ |
| 102 | #!html |
| 103 | <blockquote><p> |
| 104 | Que dites-vous ?... C’est inutile ?... Je le sais ! |
| 105 | <br />Mais on ne se bat pas dans l’espoir du succès ! |
| 106 | <br />Non ! non, c’est bien plus beau lorsque c’est inutile ! |
| 107 | <br /><small> -- Edmond Rostand, <i>Cyrano de Bergerac</i> </small> |
| 108 | </p></blockquote> |
| 109 | }}} |
| 110 | |
| 111 | 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”: |
| 112 | |
| 113 | {{{ |
| 114 | #!html |
| 115 | <blockquote><p> |
| 116 | Il n’y a rien de vraiment beau que ce qui ne peut servir à rien ; tout ce |
| 117 | qui est utile est laid ; car c’est l’expression de quelque besoin ; et ceux |
| 118 | de l’homme sont ignobles et dégoûtants, comme sa pauvre et infirme nature. - |
| 119 | L’endroit le plus utile d’une maison, ce sont les latrines. |
| 120 | </p></blockquote> |
| 121 | }}} |
| 122 | |
| 123 | As for the name “libcucul”, please refer to the pioneer of modernist Polish fiction: |
| 124 | |
| 125 | {{{ |
| 126 | #!html |
| 127 | <blockquote><p> |
| 128 | Mais contre le cucul, il n’y a pas de refuge. Courez après moi |
| 129 | si vous voulez, je m’enfuis la gueule entre les mains. Et voilà, |
| 130 | tralala, Zut à celui qui le lira ! |
| 131 | <br /><small> -- Witold Gombrowicz, <i>Ferdydurke</i> </small> |
| 132 | </p></blockquote> |
| 133 | }}} |