| 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 | | }}} |