git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/web/trunk@2920 92316355-f0b4-4df1-b90c-862c8a59935fremotes/test
@@ -0,0 +1,57 @@ | |||
# $Id$ | |||
# Activated modules | |||
RewriteEngine on | |||
# We talk utf8 here | |||
AddDefaultCharset utf-8 | |||
# Disallowed files: .htaccess, .htpasswd, .svn etc. | |||
<Files ~ "^\.ht"> | |||
Order allow,deny | |||
Deny from all | |||
</Files> | |||
<Files ~ "^\.svn"> | |||
Order allow,deny | |||
Deny from all | |||
</Files> | |||
# MIME Types | |||
<IfModule mod_action.c> | |||
AddType application/x-cgi-php .html | |||
Action application/x-cgi-php /cgi-bin/php5 | |||
</IfModule> | |||
<IfModule !mod_action.c> | |||
AddType application/x-httpd-php .html | |||
</IfModule> | |||
AddType text/css .css | |||
AddType application/octet-stream .TAP | |||
# Redirects for disallowed stuff | |||
RewriteRule ^.git/.* /.git/ [L] | |||
RewriteRule ^.svn/.* /.svn/ [L] | |||
RewriteRule (.*)/.svn/.* /$1/.svn/ [L] | |||
# Redirects for manual and lists | |||
RewriteRule ^manual/$ /manual.html?page=index [L] | |||
RewriteRule ^manual/(.*)[.]html /manual.html?page=$1 [L] | |||
RewriteRule ^list/$ /list.html?page=threads [L] | |||
RewriteRule ^list/(.*)[.]html /list.html?page=$1 [L] | |||
RewriteRule ^list-svn/$ /list-svn.html?page=threads [L] | |||
RewriteRule ^list-svn/(.*)[.]html /list-svn.html?page=$1 [L] | |||
RewriteRule ^list-trac/$ /list-trac.html?page=threads [L] | |||
RewriteRule ^list-trac/(.*)[.]html /list-trac.html?page=$1 [L] | |||
# Misc. redirects | |||
RewriteRule ^([^/]*).(gz|bz2|zip) /files/$1.$2 [R=permanent,L] | |||
RewriteRule ^images/(.*) /img/$1 [R=permanent,L] | |||
RewriteRule ^labs/img2oric.html /img2oric/ [R=permanent,L] | |||
RewriteRule ^devel.html /wiki [R=permanent,L] | |||
RewriteRule ^cgi-bin/viewcvs.cgi /browser [R=permanent,L] | |||
# Redirects for Trac - FIXME | |||
RewriteCond %{REQUEST_FILENAME} !-f | |||
RewriteCond %{REQUEST_FILENAME} !-d | |||
RewriteRule ^(.*)$ /cgi-bin/trac.cgi/$1 [PT,L,E=SCRIPT_NAME:/] | |||
@@ -0,0 +1,117 @@ | |||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||
<head> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||
<meta name="GENERATOR" content="vim" /> | |||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||
<meta name="Description" content="CacaCon’07 - First International libcaca Conference" /> | |||
<meta name="Keywords" content="CacaCon, libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" /> | |||
<title>CacaCon’07 - First International libcaca Conference</title> | |||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||
</head> | |||
<body> | |||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||
<p> FOR IMMEDIATE RELEASE </p> | |||
<h2> Report on the First International libcaca Conference </h2> | |||
<p> Wednesday October 24, 2007 </p> | |||
<p> Sam (ZOY) - Paris, France: <b>CacaCon’07</b>, the first international | |||
libcaca conference, just took place on October 19-20, 2007 in Lyon, France. | |||
</p> | |||
<p> The most eagerly-awaited event of the conference was of course Jylam’s | |||
keynote. The acclaimed libcaca second-in-chief developer covered the | |||
history of the project, gave key figures about its current status, and | |||
of course hinted at future plans. </p> | |||
<p> The morning of the second day had been busy with uncalled for attacks | |||
directed at the libcaca team by Mozilla Europe Board of Directors | |||
president Tristan Nitot who reportedly managed to say that "all | |||
applications have memory leaks" without immediately dying of maniac, | |||
self-ridiculing laughter. Needless to say, Jylam’s keynote was | |||
immediately refocused on insisting about libcaca’s superior development | |||
model and giving examples of its speed, lightweightness and general lack | |||
of memory leaks. </p> | |||
<table cellspacing="5" border="0" style="margin: auto;"> | |||
<tr> | |||
<td align="center"> | |||
<a href="DSC000013.JPG"><img alt="Jylam" | |||
width="68" height="90" | |||
src="tn-DSC000013.jpeg" /><br />Jylam</a> | |||
</td> | |||
<td align="center"> | |||
<a href="DSC000011.JPG"><img alt="PowerPipo" | |||
width="120" height="90" | |||
src="tn-DSC000011.jpeg" /><br />PowerPipo</a> | |||
</td> | |||
<td align="center"> | |||
<a href="DSC000017.JPG"><img alt="the audience" | |||
width="135" height="90" | |||
src="tn-DSC000017.jpeg" /><br />the audience</a> | |||
</td> | |||
</tr> | |||
</table> | |||
<p> The libcaca team eventually announced its new forthcoming product | |||
"neercs", a replacement for the obsolete Unix utility "screen" with | |||
full Unicode support, window thumbnailing, eye-candy transition effects | |||
and textmode window management. The audience also sat in awe as Jylam, | |||
literally knee-shaking in excitement, admitted that the very tool he had | |||
been using during the keynote was not a Microsoft product or a cheap | |||
clone thereof, but a development version of the libcaca team’s own | |||
fully-featured presentation tool, PowerPipo. </p> | |||
<p> <b>CacaCon’07</b> ended with a social event at luxury resort Le Chevreul | |||
(Lyon) where hundreds of potential libcaca users and enthusiasts would | |||
have been able to meet main developers Sam and Jylam. </p> | |||
<table cellspacing="5" border="0" style="margin: auto;"> | |||
<tr> | |||
<td align="center"> | |||
<a href="DSC000026.JPG"><img alt="Jylam and Sam" | |||
width="120" height="90" | |||
src="tn-DSC000026.jpeg" /><br />Jylam and Sam</a> | |||
</td> | |||
<td align="center"> | |||
<a href="DSC000029.JPG"><img alt="fan art" | |||
width="135" height="90" | |||
src="tn-DSC000029.jpeg" /><br />fan art</a> | |||
</td> | |||
</tr> | |||
</table> | |||
<p> <b>About libcaca:</b> <br /> | |||
libcaca is the industry leading colour ASCII art library. It is part | |||
of a global conspiracy aiming at luring basement-dwelling nerds | |||
into thinking that focusing on overtechnical, useless and generally | |||
uninteresting activities is going to help them get laid. Approximately | |||
700,000 Linux users still believe it to be true and frantically | |||
recompile nightly git snapshots of the kernel as a consequence. </p> | |||
<p> <b>About Firefox:</b> <br /> | |||
Firefox is the Mozilla Corporation’s rebranded version of the famous | |||
Iceweasel web browser, to which they insist on adding a restrictive | |||
trademark license and a suggestive yiff logo. Notwithstanding, we urge | |||
you to donate all your money to the multimillion-dollar company. The | |||
guys look legit. </p> | |||
<p> <b>About memory leaks:</b> <br /> | |||
All applications called Firefox have memory leaks. </p> | |||
<?php $rev = '$Id$'; | |||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||
</body> | |||
</html> |
@@ -0,0 +1,37 @@ | |||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||
<head> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||
<meta name="GENERATOR" content="vim" /> | |||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||
<meta name="Description" content="libcaca - cacatris" /> | |||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" /> | |||
<title>libcaca - cacatris</title> | |||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||
</head> | |||
<body> | |||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||
<h2> cacatris </h2> | |||
<p> Cacatris aims to create a graphical Tetris(c) clone, but in text mode. Main concerns focus on gameplay, and graphical quality (althought current screenshot doesn't really show this).</p> | |||
<p> It is currently under heavy developement, thus no downloads are available yet.</p> | |||
<h2> Screenshot </h2> | |||
<p style="text-align: center;"><img src="cacatris-sample.png" width="648" | |||
height="436" alt="ttyvaders sample 2" /></p> | |||
<?php $rev = '$Id$'; | |||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||
</body> | |||
</html> |
@@ -0,0 +1,64 @@ | |||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||
<head> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||
<meta name="GENERATOR" content="vim" /> | |||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||
<meta name="Description" content="libcaca - downloads" /> | |||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" /> | |||
<title>libcaca - downloads</title> | |||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||
</head> | |||
<body> | |||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||
<p> You can <a href="/files/downloads">browse old releases</a> of all the libcaca | |||
software. </p> | |||
<h2> Libcaca development versions </h2> | |||
<p> The latest libcaca beta version is <a | |||
href="/files/libcaca/libcaca-0.99.beta13b.tar.gz">libcaca-0.99.beta13b.tar.gz</a> | |||
(November 28th, 2007). Please download and test it. If you are a developer, | |||
please comment on the current API and let us know what is missing. </p> | |||
<p> Even more recent code can be downloaded using Subversion. See the <a | |||
href="/devel.html">development page</a> for more information. </p> | |||
<h2> Documentation </h2> | |||
<p> You can download a <a href="libcaca.pdf">PDF version</a> of the | |||
libcaca manual. </p> | |||
<h2> Old libcaca stable versions </h2> | |||
<p> <span style="color: #aa0000; font-weight: bold;">Warning</span>: stable | |||
releases of libcaca are terribly outdated. If you want to test libcaca, you | |||
are encouraged to check the development versions. </p> | |||
<p> Latest stable libcaca release is <a | |||
href="/files/libcaca/libcaca-0.9.tar.gz">libcaca-0.9.tar.gz</a> (216KB) / <a | |||
href="/files/libcaca/libcaca-0.9.tar.bz2">libcaca-0.9.tar.bz2</a> (172KB). </p> | |||
<p> A Windows zip archive containing the libcaca demos can be downloaded here: | |||
<a href="/files/libcaca/libcaca-win32-0.9.zip">libcaca-win32-0.9.zip</a> (100KB). </p> | |||
<p> Older versions (up to 0.9) were under the LGPL license but all | |||
copyright holders agreed to relicence the codebase under the WTFPL (such a | |||
permission is not retroactive and you should consider old versions as still | |||
covered by the LGPL). The logo on this page is copyrighted by Akira Toriyama | |||
so if anyone fancies drawing a new logo it would be much appreciated. </p> | |||
<?php $rev = '$Id$'; | |||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||
</body> | |||
</html> |
@@ -0,0 +1,48 @@ | |||
<html><head> | |||
<title>Generated by libcaca 0.99.beta10</title> | |||
</head><body> | |||
<div cellpadding='0' cellspacing='0' style='font-family: monospace, fixed; font-weight: bold;'> | |||
<span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▄▄▄</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▄▄▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#a0a;background-color:#000"> ▄</span><span style="color:#f5f;background-color:#a0a">▄▄</span><span style="color:#f5f;background-color:#000">▀▀▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄ ▄▄</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀▀▀</span><span style="color:#f5f;background-color:#a0a">▄▄▄</span><span style="color:#a0a;background-color:#000">▄▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#a0a;background-color:#000"> ▄</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#fff;background-color:#aaa">▓▓▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄▄</span><span style="color:#a0a;background-color:#000">▄ ▄▄ ▄</span><span style="color:#f5f;background-color:#a0a">▄▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄ ▄▄</span><span style="color:#f5f;background-color:#a0a">▄▄</span><span style="color:#a0a;background-color:#000">▄▄ ▄▄</span><span style="color:#f5f;background-color:#a0a">▄▄▄▄▄▄▄</span><span style="color:#a0a;background-color:#000">▄▄ ▄▄</span><span style="color:#f5f;background-color:#a0a">▄▄▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">▓▓▓</span><span style="color:#fff;background-color:#000">▄▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#a0a;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">▓▓▓▒▒▒▓▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">▓▓</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#fff;background-color:#aaa">▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#fff;background-color:#000">▄▄▄▄▄▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#000">▀▌</span><span style="color:#fff;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▓▓▒▓▓▓▓▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#f5f;background-color:#a0a">▐</span><span style="color:#f5f;background-color:#000">▌</span><span style="color:#fff;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▓▒▒░▒▓</span><span style="color:#fff;background-color:#000">▀</span><span style="color:#fff;background-color:#aaa">▓▒▒▒▒▓▓▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">▓▓</span><span style="color:#fff;background-color:#000">▄▀</span><span style="color:#fff;background-color:#aaa">▓▓▒▓</span><span style="color:#fff;background-color:#000">▌▄</span><span style="color:#fff;background-color:#aaa">▓▓▓▓▓▓</span><span style="color:#fff;background-color:#000">▄▀</span><span style="color:#fff;background-color:#aaa">▓▓▓▓▓▓▓▓▓▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">▓▓▓▓▓</span><span style="color:#fff;background-color:#000">▄ </span><span style="color:#fff;background-color:#aaa">▓▓▒▒▒▒▒▓▓</span><span style="color:#fff;background-color:#000">▌</span><span style="color:#f5f;background-color:#000">▐</span><span style="color:#f5f;background-color:#a0a">▌</span><span style="color:#a0a;background-color:#000">▌</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#f5f;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">▓▒▒░░▒</span><span style="color:#aaa;background-color:#000">▌ </span><span style="color:#fff;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▓▓</span><span style="color:#aaa;background-color:#000">▀</span><span style="color:#fff;background-color:#aaa">▓▒▒▓▓</span><span style="color:#fff;background-color:#000">▌▐</span><span style="color:#fff;background-color:#aaa">▒▒▒▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#aaa;background-color:#000">▀</span><span style="color:#fff;background-color:#aaa">▒▒▒▓▒▒░</span><span style="color:#aaa;background-color:#000">▀</span><span style="color:#fff;background-color:#aaa">▒░▒▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#fff;background-color:#aaa">▓▒▒▒░▒▒▒▓▓▀</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#fff;background-color:#aaa">▓▒░▒▒▒▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#fff;background-color:#aaa">▓▓▒░░▒▒</span><span style="color:#fff;background-color:#000">█ </span><span style="color:#f5f;background-color:#000">█</span><span style="color:#a0a;background-color:#000">█</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#f5f;background-color:#a0a">▐</span><span style="color:#f5f;background-color:#000">▌</span><span style="color:#aaa;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▒░</span><span style="color:#555;background-color:#aaa">░░░▒</span><span style="color:#555;background-color:#000">▄ </span><span style="color:#aaa;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄▌</span><span style="color:#aaa;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▓▒▒▓▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#aaa;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">░░▒</span><span style="color:#aaa;background-color:#000">▌▐</span><span style="color:#fff;background-color:#aaa">░░▒░</span><span style="color:#aaa;background-color:#000">█ ▐</span><span style="color:#fff;background-color:#aaa">░ ░▒</span><span style="color:#aaa;background-color:#000">▌▐</span><span style="color:#fff;background-color:#aaa">▒░░ ░░▒</span><span style="color:#aaa;background-color:#000">▀▀▄</span><span style="color:#fff;background-color:#aaa">▒▒░</span><span style="color:#aaa;background-color:#000"> ▀</span><span style="color:#fff;background-color:#aaa">░░▒</span><span style="color:#aaa;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">▒░░░░▒</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">█</span><span style="color:#a0a;background-color:#000">█ ▄▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#a0a;background-color:#000">█</span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#555;background-color:#aaa">▒▒░▒▒▓▓</span><span style="color:#555;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#aaa;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">▓▒░░▒▓</span><span style="color:#aaa;background-color:#000">▌</span><span style="color:#555;background-color:#aaa">░</span><span style="color:#555;background-color:#000">▄</span><span style="color:#555;background-color:#aaa">░░░▒</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#aaa">░░</span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#555;background-color:#aaa">░░▒▒░</span><span style="color:#fff;background-color:#aaa">░░</span><span style="color:#aaa;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#aaa;background-color:#000">▀ ▐</span><span style="color:#555;background-color:#aaa">░ </span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#aaa;background-color:#000">▌▐</span><span style="color:#fff;background-color:#aaa">░░░░</span><span style="color:#555;background-color:#aaa">░░░</span><span style="color:#fff;background-color:#aaa">░ ░░</span><span style="color:#aaa;background-color:#000">▌▐</span><span style="color:#fff;background-color:#aaa">░░░</span><span style="color:#555;background-color:#aaa">░</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">█</span><span style="color:#a0a;background-color:#000">█▄</span><span style="color:#f5f;background-color:#a0a">▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#a0a;background-color:#000">▐</span><span style="color:#f5f;background-color:#a0a">▐</span><span style="color:#f5f;background-color:#000">▌</span><span style="color:#555;background-color:#000">▐</span><span style="color:#555;background-color:#aaa">▓▓▒▒▓▓</span><span style="color:#555;background-color:#000">▀▄</span><span style="color:#555;background-color:#aaa">░</span><span style="color:#fff;background-color:#aaa">▒░░ ░▒▒▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#aaa">▒▒▒▓</span><span style="color:#555;background-color:#000">▌▐</span><span style="color:#555;background-color:#aaa">▒▒▒░░▒▓▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#aaa;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄█ </span><span style="color:#555;background-color:#aaa">▒░░░░</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#aaa">▒░░▒▒</span><span style="color:#555;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▒▒░ ░░</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#555;background-color:#aaa">░░</span><span style="color:#aaa;background-color:#000">▌</span><span style="color:#f5f;background-color:#000">▐█▀▀</span><span style="color:#aaa;background-color:#000">▄</span><span style="color:#555;background-color:#000">▄</span><span style="color:#555;background-color:#aaa">▓▓</span><span style="color:#555;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#a0a;background-color:#000"> ▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▓▓▓</span><span style="color:#555;background-color:#000">▀▄</span><span style="color:#555;background-color:#aaa">▓▓▒▒░░ ░</span><span style="color:#fff;background-color:#aaa">░▒</span><span style="color:#aaa;background-color:#000">▌</span><span style="color:#555;background-color:#000">▐</span><span style="color:#555;background-color:#aaa">▓▓</span><span style="color:#555;background-color:#000">▀▀▄</span><span style="color:#555;background-color:#aaa">▓▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▓▒▒░</span><span style="color:#555;background-color:#000">▄▄▄</span><span style="color:#f5f;background-color:#000">▀▀▀█▌</span><span style="color:#555;background-color:#000">▐</span><span style="color:#555;background-color:#aaa">▒▒░▒▒▒</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#aaa">▓▒▒</span><span style="color:#555;background-color:#000">▌ ▐</span><span style="color:#555;background-color:#aaa">▒▒░▒▒</span><span style="color:#555;background-color:#000">▌</span><span style="color:#555;background-color:#aaa">▒▒░▒</span><span style="color:#aaa;background-color:#000">▄▄</span><span style="color:#555;background-color:#aaa">░░░▒▒▒▓▓</span><span style="color:#555;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><br /> | |||
<span style="color:#a0a;background-color:#000"> ▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀ </span><span style="color:#555;background-color:#aaa">▓▓▓▒▒░░ ░░</span><span style="color:#fff;background-color:#aaa">░░</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">▄▄▄</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#f5f;background-color:#000">▄▄▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▓▓▒▒▒░░░</span><span style="color:#555;background-color:#000">▄▄▄▀</span><span style="color:#555;background-color:#aaa">▓▓▓</span><span style="color:#555;background-color:#000">▀▄</span><span style="color:#555;background-color:#aaa">▓▓▓▓▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#aaa">▓▓▒▒▒▓▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#aaa">▓▒▒▒░░░▒▒▒▒▒▓▓▓</span><span style="color:#555;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">█</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#555;background-color:#aaa">▓▓▓▒▒▒░░</span><span style="color:#555;background-color:#000">▌</span><span style="color:#f5f;background-color:#000">▐</span><span style="color:#f5f;background-color:#a0a">▌</span><span style="color:#a0a;background-color:#000">▀█▄ ▀▀▀ ▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄▄</span><span style="color:#555;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▓▓▒▒▓▓▓▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄▄</span><span style="color:#555;background-color:#000">▀▀▀</span><span style="color:#f5f;background-color:#000">▄▄▄</span><span style="color:#555;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▓▓▓▓</span><span style="color:#555;background-color:#000">▌▐</span><span style="color:#555;background-color:#aaa">▓▓▓▓▒▒▒▒▓▓▓▓▓</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▀</span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄▀</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#f5f;background-color:#000">▄▄</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#555;background-color:#aaa">▓▓▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▀▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄ ▄</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀▀▀▀▄▄</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#555;background-color:#aaa">▓▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄█▀▀▀▀</span><span style="color:#f5f;background-color:#a0a">▄▄▀▀▀</span><span style="color:#a0a;background-color:#000">██▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄▄</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#000">▄▄▄</span><span style="color:#555;background-color:#000">▀▀▀</span><span style="color:#555;background-color:#aaa">▓▓▓▓</span><span style="color:#555;background-color:#000">▀▀▀</span><span style="color:#f5f;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#a0a;background-color:#000"> ▄</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#a0a;background-color:#a0a"> </span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#f5f;background-color:#000">▄▄▄█▀▀</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#fff;background-color:#aaa">▓▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#a00;background-color:#000">▄</span><span style="color:#f55;background-color:#a00">░▒▓▒</span><span style="color:#a00;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀██▄▄▀</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#fff;background-color:#aaa">▓▓▓▓</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄▄</span><span style="color:#a0a;background-color:#000">█▀</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#a0a;background-color:#000">█</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▄▄▄ </span><span style="color:#f5f;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#a0a">▀▀▀</span><span style="color:#a0a;background-color:#000">▀▀</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#a0a;background-color:#000"> ▐</span><span style="color:#f5f;background-color:#a0a">▐</span><span style="color:#f5f;background-color:#000">▌</span><span style="color:#fff;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▓▓▓</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#a0a;background-color:#a0a"> </span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">▓▓▓▒▒▒▓▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#a00;background-color:#000">█</span><span style="color:#f55;background-color:#a00">░▒▓</span><span style="color:#fff;background-color:#a00">▓</span><span style="color:#f55;background-color:#a00">▓▒</span><span style="color:#a00;background-color:#000">█ </span><span style="color:#f5f;background-color:#000">█▀</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">▓▓▓▒▒░▒▓▓▓▓</span><span style="color:#fff;background-color:#000">▄▀</span><span style="color:#fff;background-color:#aaa">▓</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄█</span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">▓▓▓▓▓▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#a0a;background-color:#000"> █</span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">▓▓▒▒▒▓▓</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▌</span><span style="color:#aaa;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▒▒▒░░░▒▒</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">█▄</span><span style="color:#a00;background-color:#000">▀</span><span style="color:#f55;background-color:#a00">░▒▓▒</span><span style="color:#a00;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄█▌</span><span style="color:#fff;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▓▓▒▒░░░░▒▒▒▓▓</span><span style="color:#fff;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">▓▓▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#fff;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▓▓▒▒▒▓▓</span><span style="color:#fff;background-color:#000">▌</span><span style="color:#f5f;background-color:#000">▐</span><span style="color:#f5f;background-color:#a0a">▌</span><span style="color:#a0a;background-color:#000">▌</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#a0a;background-color:#000"> ▐</span><span style="color:#f5f;background-color:#a0a">▐</span><span style="color:#f5f;background-color:#000">▌</span><span style="color:#fff;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▓▒▒░▒▒▓▓▓▓</span><span style="color:#fff;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀ </span><span style="color:#fff;background-color:#aaa">▒░░░</span><span style="color:#555;background-color:#aaa">░</span><span style="color:#fff;background-color:#aaa">░░▒</span><span style="color:#aaa;background-color:#000">▌</span><span style="color:#f5f;background-color:#000">▀▄█▄▄▄▄▀▀</span><span style="color:#fff;background-color:#000">▄ </span><span style="color:#fff;background-color:#aaa">▒▒░░░</span><span style="color:#555;background-color:#aaa">░</span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#aaa;background-color:#000">▀</span><span style="color:#fff;background-color:#aaa">▒░░░▒▒</span><span style="color:#aaa;background-color:#000">▌▐</span><span style="color:#fff;background-color:#aaa">▓▒▒▓</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#fff;background-color:#aaa">▒▒▒▒░░░▒▓▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">█</span><span style="color:#a0a;background-color:#000">█</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#a0a;background-color:#000"> █</span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">▓▓▒░░░▒▒▒▒</span><span style="color:#aaa;background-color:#000">▌</span><span style="color:#f5f;background-color:#000">▀▌</span><span style="color:#aaa;background-color:#000">▐</span><span style="color:#fff;background-color:#aaa">▒░</span><span style="color:#555;background-color:#aaa">░ </span><span style="color:#fff;background-color:#aaa">░░░</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#fff;background-color:#aaa">▓</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#fff;background-color:#000">▄▄</span><span style="color:#fff;background-color:#aaa">▓▓▓</span><span style="color:#fff;background-color:#000">▌ </span><span style="color:#fff;background-color:#aaa">░░</span><span style="color:#555;background-color:#aaa">▒▒░</span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#aaa;background-color:#000">▌▐</span><span style="color:#555;background-color:#aaa">░░▒</span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#aaa;background-color:#000">▀▄</span><span style="color:#fff;background-color:#aaa">▒░░░▒▒▒░░░░ </span><span style="color:#555;background-color:#aaa">░</span><span style="color:#fff;background-color:#aaa">░░░▒</span><span style="color:#aaa;background-color:#000">▌</span><span style="color:#f5f;background-color:#000">▐</span><span style="color:#f5f;background-color:#a0a">▌</span><span style="color:#a0a;background-color:#000">▌</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#a0a;background-color:#000"> █</span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">▒░</span><span style="color:#555;background-color:#aaa">░░░</span><span style="color:#fff;background-color:#aaa">░░░░</span><span style="color:#aaa;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#aaa;background-color:#000">▄</span><span style="color:#fff;background-color:#aaa">░░</span><span style="color:#555;background-color:#aaa">░ ░░</span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#aaa;background-color:#000">▌ ▐</span><span style="color:#fff;background-color:#aaa">▓▓▒▒░▒▒▒▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#000">▄</span><span style="color:#aaa;background-color:#000">▄▄▄▀</span><span style="color:#555;background-color:#aaa">░▒</span><span style="color:#555;background-color:#000">▄</span><span style="color:#aaa;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▒</span><span style="color:#555;background-color:#000">▀</span><span style="color:#aaa;background-color:#000">▄</span><span style="color:#555;background-color:#aaa">░</span><span style="color:#fff;background-color:#aaa">░░</span><span style="color:#555;background-color:#aaa">░ ░</span><span style="color:#fff;background-color:#aaa">░░</span><span style="color:#aaa;background-color:#000">▀▀▀</span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#555;background-color:#aaa">░░ ░░</span><span style="color:#fff;background-color:#aaa">░░</span><span style="color:#aaa;background-color:#000">▌</span><span style="color:#f5f;background-color:#000">▐</span><span style="color:#f5f;background-color:#a0a">▌</span><span style="color:#a0a;background-color:#000">▌</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">█</span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#555;background-color:#aaa">▒▒▒░░░▒</span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#555;background-color:#aaa">▓</span><span style="color:#fff;background-color:#aaa">░</span><span style="color:#555;background-color:#aaa">▒▒░░░▒▒</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#fff;background-color:#aaa">▒░░░</span><span style="color:#555;background-color:#aaa">░░</span><span style="color:#fff;background-color:#aaa">░░░</span><span style="color:#aaa;background-color:#000">▌</span><span style="color:#555;background-color:#000">▄</span><span style="color:#555;background-color:#aaa">▒▒░░░░░▒▒▒</span><span style="color:#555;background-color:#000">▄ </span><span style="color:#555;background-color:#aaa">▒▒░░░░▒▒</span><span style="color:#555;background-color:#000">▌▄</span><span style="color:#555;background-color:#aaa">▒▒░░░░░▒▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">█</span><span style="color:#a0a;background-color:#000">█</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▓▓▒▒▒▒▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▓▓▒▒▒▓▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#aaa">▒▒▒▓▓▓▓▒▒▒</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#aaa">▓▓▓▒▒▒▒▒▓▓▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄█ </span><span style="color:#555;background-color:#aaa">▓▓▒▒▒▒▓▓</span><span style="color:#555;background-color:#000">▐</span><span style="color:#555;background-color:#aaa">▓▒▒▒▒▒▒▓</span><span style="color:#555;background-color:#000">▌</span><span style="color:#f5f;background-color:#000">▐</span><span style="color:#f5f;background-color:#a0a">▌</span><span style="color:#a0a;background-color:#000">▌</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#555;background-color:#aaa">▓▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#555;background-color:#aaa">▓▓</span><span style="color:#555;background-color:#000">▀ ▄</span><span style="color:#555;background-color:#aaa">▓▓▓</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#000">▄▄</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#555;background-color:#aaa">▓▓▓</span><span style="color:#555;background-color:#000">▄▀▀</span><span style="color:#555;background-color:#aaa">▓▓▓▓▓▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#a0a;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀</span><span style="color:#555;background-color:#aaa">▓▓▓▓</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#555;background-color:#000">▀▀</span><span style="color:#555;background-color:#aaa">▓▓▓▓▓</span><span style="color:#555;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#f5f;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#a0a;background-color:#000">▀ ▀</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#f5f;background-color:#000">▄▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">█▄▄▄▄█</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#a0a;background-color:#000">█</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">██▄▄▄▄</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#f5f;background-color:#000">▄▄▄▄▄▄█</span><span style="color:#f5f;background-color:#a0a">▄▄▄</span><span style="color:#a0a;background-color:#000">▄ ▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄▄▄▄</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#f5f;background-color:#000">▄▄▄▄▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▀▀</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">█</span><span style="color:#f5f;background-color:#000">█▀</span><span style="color:#00a;background-color:#000">▄▄▄▄▄▄</span><span style="color:#f5f;background-color:#000">▀▀</span><span style="color:#00a;background-color:#000">▄▄▄▄▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄▄███</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#00a;background-color:#000">▄▄▄▄▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄ ▀▀▀▀</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▀▀▀▀▀</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">█</span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#f5f;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒▓</span><span style="color:#55f;background-color:#000">▄ </span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#f5f;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">█▄▀▀▀▀▀█ </span><span style="color:#f5f;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">█</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">█</span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#f5f;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">██ </span><span style="color:#f5f;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒▓</span><span style="color:#55f;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄ </span><span style="color:#f5f;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒</span><span style="color:#00a;background-color:#000">▀█ </span><span style="color:#00a;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒▓</span><span style="color:#55f;background-color:#000">▀</span><span style="color:#f5f;background-color:#000">▄</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">█</span><span style="color:#f5f;background-color:#000">█ </span><span style="color:#f5f;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒▓</span><span style="color:#aaa;background-color:#000"> </span><span style="color:#f5f;background-color:#000">██ </span><span style="color:#f5f;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒▓</span><span style="color:#55f;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀ </span><span style="color:#f5f;background-color:#00a"> </span><span style="color:#55f;background-color:#00a">░▒▓</span><span style="color:#55f;background-color:#000">█ </span><span style="color:#55f;background-color:#00a"> ░▒▓</span><span style="color:#55f;background-color:#000">▄</span><span style="color:#f5f;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▄</span><span style="color:#a0a;background-color:#000">▄</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄▄▄▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#a0a;background-color:#000">▀▀</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">▄▄▄▄▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#f5f;background-color:#000">█▄▄▄▄▄</span><span style="color:#f5f;background-color:#a0a">▀▀</span><span style="color:#f5f;background-color:#000">▄▄▄▄▄</span><span style="color:#f5f;background-color:#a0a">▀</span><span style="color:#a0a;background-color:#000">▀</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">▀▀▀▀ ▀▀▀▀▀ ▀▀▀▀▀▀ ▀▀▀▀▀</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#fff;background-color:#000">M O R T A L W </span><span style="color:#555;background-color:#000">i </span><span style="color:#fff;background-color:#000">S H</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#555;background-color:#000">▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄</span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">PiL HQ </span><span style="color:#fff;background-color:#000">■ </span><span style="color:#a0a;background-color:#000">Syndrome Couriers HQ </span><span style="color:#fff;background-color:#000">■ </span><span style="color:#a0a;background-color:#000">GODS WHQ</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">16.8 Duals </span><span style="color:#fff;background-color:#000">■ </span><span style="color:#a0a;background-color:#000">8i8.XxX.XxXx </span><span style="color:#fff;background-color:#000">■ </span><span style="color:#a0a;background-color:#000">8 Node Ringdown</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">S: QUAZiMODEM & CiPHER</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">CO'S: LORD THiNKER THE MOZARELLO</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#a0a;background-color:#000">SLiCE & DiCE </span><span style="color:#fff;background-color:#000">■ </span><span style="color:#a0a;background-color:#000">HURRiCAN </span><span style="color:#fff;background-color:#000">■ </span><span style="color:#a0a;background-color:#000">RAZOR BLADE</span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#555;background-color:#000">▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀</span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><span style="color:#555;background-color:#000">ANSi BY </span><span style="color:#fff;background-color:#000">LUC </span><span style="color:#555;background-color:#000">< </span><span style="color:#55f;background-color:#000">AiM </span><span style="color:#555;background-color:#000">'</span><span style="color:#00a;background-color:#000">NiNE FO</span><span style="color:#555;background-color:#000">' ></span><span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><br /> | |||
<span style="color:#aaa;background-color:#000"> </span><br /> | |||
</div></body></html> |
@@ -0,0 +1,17 @@ | |||
</div> | |||
</div> | |||
</div> | |||
<div class="gradleft"> | |||
<div class="gradright"> | |||
<div class="bottom"> | |||
<div class="bottombar"> | |||
<div style="float: right"> | |||
<p>valid <a href="http://validator.w3.org/check/referer">XHTML 1.1</a> & <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a></p> | |||
</div> | |||
<p><?php echo $rev . ' Host: ' . $_SERVER['REMOTE_ADDR'];?></p> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
@@ -0,0 +1,28 @@ | |||
<div class="gradleft"> | |||
<div class="gradright"> | |||
<div class="top"> | |||
<p class="dashit"> | |||
<?php function printrand($a) { print $a[array_rand($a)]; } | |||
printrand(array('it’s da shit!', | |||
'libcaca c’est du caca', | |||
'libcacaは糞です。', | |||
'die scheussliche Bibliothek', | |||
'libcaca©®™, take back the text', | |||
'a million flies cannot be wrong')); ?> | |||
</p> | |||
<h1> libcaca - Colour AsCii Art library </h1> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="menubar" style="clear: both;"> | |||
<p> | |||
<a class="menubutton" href="/">home</a> | |||
<a class="menubutton" href="/manual/">manual</a> | |||
<a class="menubutton" href="/list.html">mailing-lists</a> | |||
</p> | |||
</div> | |||
<div class="gradleft"> | |||
<div class="gradright"> | |||
<div class="main"> |
@@ -0,0 +1,610 @@ | |||
/* | |||
* img2oric Convert an image to Oric Atmos colours | |||
* Copyright (c) 2008 Sam Hocevar <sam@zoy.org> | |||
* All Rights Reserved | |||
* | |||
* Changes: | |||
* Jan 18, 2008: initial release | |||
* Jan 23, 2008: add support for inverse video on attribute change | |||
* improve Floyd-Steinberg coefficient values | |||
* Jun 14, 2008: Win32 version | |||
* Jun 18, 2008: add meaningful error messages | |||
* | |||
* This program is free software. It comes without any warranty, to | |||
* the extent permitted by applicable law. You can redistribute it | |||
* and/or modify it under the terms of the Do What The Fuck You Want | |||
* To Public License, Version 2, as published by Sam Hocevar. See | |||
* http://sam.zoy.org/wtfpl/COPYING for more details. | |||
* | |||
* To build this program on Linux: | |||
* cc -O3 -funroll-loops -W -Wall img2oric.c -o img2oric \ | |||
* $(pkg-config --cflags --libs sdl) -lSDL_image -lm | |||
* To build a Windows executable: | |||
* i586-mingw32msvc-cc -O3 -funroll-loops -W -Wall \ | |||
* img2oric.c -o img2oric.exe -lgdi32 | |||
*/ | |||
#include <stdio.h> | |||
#include <stdlib.h> | |||
#include <string.h> | |||
#include <math.h> | |||
#if defined _WIN32 | |||
# include <windows.h> | |||
# define uint8_t unsigned char | |||
#else | |||
# include <SDL_image.h> | |||
#endif | |||
/* | |||
* BMP output name and Oric output name | |||
*/ | |||
#define BMPFILE "output.bmp" | |||
#define ORICFILE "OUTPUT" /* ".TAP" will be appended */ | |||
/* | |||
* Image dimensions and recursion depth. DEPTH = 2 is a reasonable value, | |||
* DEPTH = 3 gives good quality, and higher values may improve the results | |||
* even more but at the cost of significantly longer computation times. | |||
*/ | |||
#define WIDTH 240 | |||
#define HEIGHT 200 | |||
#define DEPTH 3 | |||
/* | |||
* Error diffusion table, similar to Floyd-Steinberg. I choose not to | |||
* propagate 100% of the error, because doing so creates awful artifacts | |||
* (full lines of the same colour, massive colour bleeding) for unclear | |||
* reasons. Atkinson dithering propagates 3/4 of the error, which is even | |||
* less than our 31/32. I also choose to propagate slightly more in the | |||
* X direction to avoid banding effects due to rounding errors. | |||
* It would be interesting, for future versions of this software, to | |||
* propagate the error to the second line, too. But right now I find it far | |||
* too complex to do. | |||
* | |||
* +-------+-------+ | |||
* | error |FS0/FSX| | |||
* +-------+-------+-------+ | |||
* |FS1/FSX|FS2/FSX|FS3/FSX| | |||
* +-------+-------+-------+ | |||
*/ | |||
#define FS0 15 | |||
#define FS1 6 | |||
#define FS2 9 | |||
#define FS3 1 | |||
#define FSX 32 | |||
/* | |||
* The simple Oric RGB palette, made of the 8 Neugebauer primary colours. Each | |||
* colour is repeated 6 times so that we can point to the palette to paste | |||
* whole blocks of 6 pixels. It’s also organised so that palette[7-x] is the | |||
* RGB negative of palette[x], and screen command X uses palette[X & 7]. | |||
*/ | |||
#define o 0x0000 | |||
#define X 0xffff | |||
static const int palette[8][6 * 3] = | |||
{ | |||
{ o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o }, | |||
{ X, o, o, X, o, o, X, o, o, X, o, o, X, o, o, X, o, o }, | |||
{ o, X, o, o, X, o, o, X, o, o, X, o, o, X, o, o, X, o }, | |||
{ X, X, o, X, X, o, X, X, o, X, X, o, X, X, o, X, X, o }, | |||
{ o, o, X, o, o, X, o, o, X, o, o, X, o, o, X, o, o, X }, | |||
{ X, o, X, X, o, X, X, o, X, X, o, X, X, o, X, X, o, X }, | |||
{ o, X, X, o, X, X, o, X, X, o, X, X, o, X, X, o, X, X }, | |||
{ X, X, X, X, X, X, X, X, X, X, X, X, X, X, X, X, X, X }, | |||
}; | |||
/* | |||
* Gamma correction tables. itoc_table and ctoi_table accept overflow and | |||
* underflow values to a reasonable extent, so that we don’t have to check | |||
* for these cases later in the code. Tests kill performance. | |||
*/ | |||
#define PAD 2048 | |||
static int itoc_table_clip[PAD + 256 + PAD], ctoi_table_clip[PAD + 256 + PAD]; | |||
static int *itoc_table = itoc_table_clip + PAD; | |||
static int *ctoi_table = ctoi_table_clip + PAD; | |||
static void init_tables(void) | |||
{ | |||
int i; | |||
for(i = 0; i < PAD + 256 + PAD; i++) | |||
{ | |||
double f = 1.0 * (i - PAD) / 255.999; | |||
if(f >= 0.) | |||
{ | |||
itoc_table_clip[i] = (int)(65535.999 * pow(f, 1./2.2)); | |||
ctoi_table_clip[i] = (int)(65535.999 * pow(f, 2.2)); | |||
} | |||
else | |||
{ | |||
itoc_table_clip[i] = - (int)(65535.999 * pow(-f, 1./2.2)); | |||
ctoi_table_clip[i] = - (int)(65535.999 * pow(-f, 2.2)); | |||
} | |||
} | |||
} | |||
static inline int itoc(int p) { return itoc_table[p / 0x100]; } | |||
static inline int ctoi(int p) { return ctoi_table[p / 0x100]; } | |||
/* | |||
* Set new background and foreground colours according to the given command. | |||
*/ | |||
static inline void domove(uint8_t command, uint8_t *bg, uint8_t *fg) | |||
{ | |||
if((command & 0x78) == 0x00) | |||
*fg = command & 0x7; | |||
else if((command & 0x78) == 0x10) | |||
*bg = command & 0x7; | |||
} | |||
/* | |||
* Clamp pixel value to avoid colour bleeding. Deactivated because it | |||
* does not give satisfactory results. | |||
*/ | |||
#define CLAMP 0x1000 | |||
static inline int clamp(int p) | |||
{ | |||
#if 0 | |||
/* FIXME: doesn’t give terribly good results on eg. eatme.png */ | |||
if(p < - CLAMP) return - CLAMP; | |||
if(p > 0xffff + CLAMP) return 0xffff + CLAMP; | |||
#endif | |||
return p; | |||
} | |||
/* | |||
* Compute the perceptual error caused by replacing the input pixels "in" | |||
* with the output pixels "out". "inerr" is the diffused error that should | |||
* be applied to "in"’s first pixel. "outerr" will hold the diffused error | |||
* to apply after "in"’s last pixel upon next call. The return value does | |||
* not mean much physically; it is one part of the algorithm where you need | |||
* to play a bit in order to get appealing results. That’s how image | |||
* processing works, dude. | |||
*/ | |||
static inline int geterror(int const *in, int const *inerr, | |||
int const *out, int *outerr) | |||
{ | |||
int tmperr[9 * 3]; | |||
int i, c, ret = 0; | |||
/* 9 cells: 1 for the end of line, 8 for the errors below */ | |||
memcpy(tmperr, inerr, 3 * sizeof(int)); | |||
memset(tmperr + 3, 0, 8 * 3 * sizeof(int)); | |||
for(i = 0; i < 6; i++) | |||
{ | |||
for(c = 0; c < 3; c++) | |||
{ | |||
/* Experiment shows that this is important at small depths */ | |||
int a = clamp(in[i * 3 + c] + tmperr[c]); | |||
int b = out[i * 3 + c]; | |||
tmperr[c] = (a - b) * FS0 / FSX; | |||
tmperr[c + (i * 3 + 3)] += (a - b) * FS1 / FSX; | |||
tmperr[c + (i * 3 + 6)] += (a - b) * FS2 / FSX; | |||
tmperr[c + (i * 3 + 9)] += (a - b) * FS3 / FSX; | |||
ret += (a - b) / 256 * (a - b) / 256; | |||
} | |||
} | |||
for(i = 0; i < 4; i++) | |||
{ | |||
for(c = 0; c < 3; c++) | |||
{ | |||
/* Experiment shows that this is important at large depths */ | |||
int a = itoc((in[i * 3 + c] + in[i * 3 + 3 + c] | |||
+ in[i * 3 + 6 + c]) / 3); | |||
int b = itoc((out[i * 3 + c] + out[i * 3 + 3 + c] | |||
+ out[i * 3 + 6 + c]) / 3); | |||
ret += (a - b) / 256 * (a - b) / 256; | |||
} | |||
} | |||
/* Using the diffused error as a perceptual error component is stupid, | |||
* because that’s not what it is at all, but I found that it helped a | |||
* bit in some cases. */ | |||
for(i = 0; i < 3; i++) | |||
ret += tmperr[i] / 256 * tmperr[i] / 256; | |||
memcpy(outerr, tmperr, 3 * sizeof(int)); | |||
return ret; | |||
} | |||
static uint8_t bestmove(int const *in, uint8_t bg, uint8_t fg, | |||
int const *errvec, int depth, int maxerror, | |||
int *error, int *out) | |||
{ | |||
int voidvec[3], nvoidvec[3], bestrgb[6 * 3], tmprgb[6 * 3], tmpvec[3]; | |||
int const *voidrgb, *nvoidrgb, *vec, *rgb; | |||
int besterror, curerror, suberror, statice, voide, nvoide; | |||
int i, j, c; | |||
uint8_t command, bestcommand; | |||
/* Precompute error for the case where we change the foreground colour | |||
* and hence only print the background colour or its negative */ | |||
voidrgb = palette[bg]; | |||
voide = geterror(in, errvec, voidrgb, voidvec); | |||
nvoidrgb = palette[7 - bg]; | |||
nvoide = geterror(in, errvec, nvoidrgb, nvoidvec); | |||
/* Precompute sub-error for the case where we print pixels (and hence | |||
* don’t change the palette). It’s not the exact error because we should | |||
* be propagating the error to the first pixel here. */ | |||
if(depth > 0) | |||
{ | |||
int tmp[3] = { 0, 0, 0 }; | |||
bestmove(in + 6 * 3, bg, fg, tmp, depth - 1, maxerror, &statice, NULL); | |||
} | |||
/* Check every likely command: | |||
* 0-7: change foreground to 0-7 | |||
* 8-15: change foreground to 0-7, print negative background | |||
* 16-23: change background to 0-7 | |||
* 24-31: change background to 0-7, print negative background | |||
* 32: normal stuff | |||
* 33: inverse video stuff */ | |||
besterror = 0x7ffffff; | |||
bestcommand = 0x10; | |||
memcpy(bestrgb, voidrgb, 6 * 3 * sizeof(int)); | |||
for(j = 0; j < 34; j++) | |||
{ | |||
static uint8_t const lookup[] = | |||
{ | |||
0x00, 0x04, 0x01, 0x05, 0x02, 0x06, 0x03, 0x07, | |||
0x80, 0x84, 0x81, 0x85, 0x82, 0x86, 0x83, 0x87, | |||
0x10, 0x14, 0x11, 0x15, 0x12, 0x16, 0x13, 0x17, | |||
0x90, 0x94, 0x91, 0x95, 0x92, 0x96, 0x93, 0x97, | |||
0x40, 0xc0 | |||
}; | |||
uint8_t newbg = bg, newfg = fg; | |||
command = lookup[j]; | |||
domove(command, &newbg, &newfg); | |||
/* Keeping bg and fg is useless, because we could use standard | |||
* pixel printing instead */ | |||
if((command & 0x40) == 0x00 && newbg == bg && newfg == fg) | |||
continue; | |||
/* I *think* having newfg == newbg is useless, too, but I don’t | |||
* want to miss some corner case where swapping bg and fg may be | |||
* interesting, so we continue anyway. */ | |||
#if 0 | |||
/* Bit 6 off and bit 5 on seems illegal */ | |||
if((command & 0x60) == 0x20) | |||
continue; | |||
/* Bits 6 and 5 off and bit 3 on seems illegal */ | |||
if((command & 0x68) == 0x08) | |||
continue; | |||
#endif | |||
if((command & 0xf8) == 0x00) | |||
{ | |||
curerror = voide; | |||
rgb = voidrgb; | |||
vec = voidvec; | |||
} | |||
else if((command & 0xf8) == 0x80) | |||
{ | |||
curerror = nvoide; | |||
rgb = nvoidrgb; | |||
vec = nvoidvec; | |||
} | |||
else if((command & 0xf8) == 0x10) | |||
{ | |||
rgb = palette[newbg]; | |||
curerror = geterror(in, errvec, rgb, tmpvec); | |||
vec = tmpvec; | |||
} | |||
else if((command & 0xf8) == 0x90) | |||
{ | |||
rgb = palette[7 - newbg]; | |||
curerror = geterror(in, errvec, rgb, tmpvec); | |||
vec = tmpvec; | |||
} | |||
else | |||
{ | |||
int const *bgcolor, *fgcolor; | |||
if((command & 0x80) == 0x00) | |||
{ | |||
bgcolor = palette[bg]; fgcolor = palette[fg]; | |||
} | |||
else | |||
{ | |||
bgcolor = palette[7 - bg]; fgcolor = palette[7 - fg]; | |||
} | |||
memcpy(tmpvec, errvec, 3 * sizeof(int)); | |||
curerror = 0; | |||
for(i = 0; i < 6; i++) | |||
{ | |||
int vec1[3], vec2[3]; | |||
int smalle1 = 0, smalle2 = 0; | |||
memcpy(vec1, tmpvec, 3 * sizeof(int)); | |||
memcpy(vec2, tmpvec, 3 * sizeof(int)); | |||
for(c = 0; c < 3; c++) | |||
{ | |||
int delta1, delta2; | |||
delta1 = clamp(in[i * 3 + c] + tmpvec[c]) - bgcolor[c]; | |||
vec1[c] = delta1 * FS0 / FSX; | |||
smalle1 += delta1 / 256 * delta1; | |||
delta2 = clamp(in[i * 3 + c] + tmpvec[c]) - fgcolor[c]; | |||
vec2[c] = delta2 * FS0 / FSX; | |||
smalle2 += delta2 / 256 * delta2; | |||
} | |||
if(smalle1 < smalle2) | |||
{ | |||
memcpy(tmpvec, vec1, 3 * sizeof(int)); | |||
memcpy(tmprgb + i * 3, bgcolor, 3 * sizeof(int)); | |||
} | |||
else | |||
{ | |||
memcpy(tmpvec, vec2, 3 * sizeof(int)); | |||
memcpy(tmprgb + i * 3, fgcolor, 3 * sizeof(int)); | |||
command |= (1 << (5 - i)); | |||
} | |||
} | |||
/* Recompute full error */ | |||
curerror += geterror(in, errvec, tmprgb, tmpvec); | |||
rgb = tmprgb; | |||
vec = tmpvec; | |||
} | |||
if(curerror > besterror) | |||
continue; | |||
/* Try to avoid bad decisions now that will have a high cost | |||
* later in the line by making the next error more important than | |||
* the current error. */ | |||
curerror = curerror * 3 / 4; | |||
if(depth == 0) | |||
suberror = 0; /* It’s the end of the tree */ | |||
else if((command & 0x68) == 0x00) | |||
{ | |||
bestmove(in + 6 * 3, newbg, newfg, vec, depth - 1, | |||
besterror - curerror, &suberror, NULL); | |||
#if 0 | |||
/* Slight penalty for colour changes; they're hard to revert. The | |||
* value of 2 was determined empirically. 1.5 is not enough and | |||
* 3 is too much. */ | |||
if(newbg != bg) | |||
suberror = suberror * 10 / 8; | |||
else if(newfg != fg) | |||
suberror = suberror * 9 / 8; | |||
#endif | |||
} | |||
else | |||
suberror = statice; | |||
if(curerror + suberror < besterror) | |||
{ | |||
besterror = curerror + suberror; | |||
bestcommand = command; | |||
memcpy(bestrgb, rgb, 6 * 3 * sizeof(int)); | |||
} | |||
} | |||
*error = besterror; | |||
if(out) | |||
memcpy(out, bestrgb, 6 * 3 * sizeof(int)); | |||
return bestcommand; | |||
} | |||
int main(int argc, char *argv[]) | |||
{ | |||
#if defined _WIN32 | |||
PBITMAPINFO pbinfo; | |||
BITMAPINFO binfo; | |||
BITMAPFILEHEADER bfheader; | |||
ULONG bisize; | |||
HANDLE hfile; | |||
HBITMAP tmp; | |||
HDC hdc; | |||
DWORD ret; | |||
#else | |||
SDL_Surface *tmp, *surface; | |||
#endif | |||
FILE *f; | |||
uint8_t *pixels; | |||
int *src, *dst, *srcl, *dstl; | |||
int stride, x, y, depth, c; | |||
if(argc < 2) | |||
{ | |||
fprintf(stderr, "Error: missing argument.\n"); | |||
fprintf(stderr, "Usage: img2oric <image>\n"); | |||
return 1; | |||
} | |||
#if defined _WIN32 | |||
tmp = (HBITMAP)LoadImage(NULL, argv[1], IMAGE_BITMAP, | |||
0, 0, LR_LOADFROMFILE); | |||
#else | |||
tmp = IMG_Load(argv[1]); | |||
#endif | |||
if(!tmp) | |||
{ | |||
fprintf(stderr, "Error: could not load image %s.\n", argv[1]); | |||
#if defined _WIN32 | |||
fprintf(stderr, "Maybe try with an 8-bpp or 24-bpp BMP file?\n"); | |||
#endif | |||
return 2; | |||
} | |||
f = fopen(ORICFILE ".TAP", "w"); | |||
if(!f) | |||
{ | |||
fprintf(stderr, "Error: could not open %s.TAP for writing.\n", | |||
ORICFILE); | |||
return 3; | |||
} | |||
fwrite("\x16\x16\x16\x16\x24", 1, 5, f); | |||
fwrite("\x00\xff\x80\x00\xbf\x3f\xa0\x00\x00", 1, 9, f); | |||
fwrite(ORICFILE, 1, strlen(ORICFILE), f); | |||
fwrite("\x00", 1, 1, f); | |||
init_tables(); | |||
/* Load the image into a friendly array of fast integers. We create it | |||
* slightly bigger than the image so that we don’t have to care about | |||
* borders when propagating the error later */ | |||
src = calloc((WIDTH + 1) * (HEIGHT + 1) * 3, sizeof(int)); | |||
dst = calloc((WIDTH + 1) * (HEIGHT + 1) * 3, sizeof(int)); | |||
stride = (WIDTH + 1) * 3; | |||
#if defined _WIN32 | |||
hdc = CreateCompatibleDC(NULL); | |||
SelectObject(hdc, tmp); | |||
for(y = 0; y < HEIGHT; y++) | |||
for(x = 0; x < WIDTH; x++) | |||
{ | |||
COLORREF color = GetPixel(hdc, x, y); | |||
src[y * stride + x * 3] = ctoi(GetRValue(color) * 0x101); | |||
src[y * stride + x * 3 + 1] = ctoi(GetGValue(color) * 0x101); | |||
src[y * stride + x * 3 + 2] = ctoi(GetBValue(color) * 0x101); | |||
for(c = 0; c < 3; c++) | |||
dst[y * stride + x * 3 + c] = 0; | |||
} | |||
#else | |||
/* FIXME: endianness */ | |||
surface = SDL_CreateRGBSurface(SDL_SWSURFACE, WIDTH, HEIGHT, 32, | |||
0xff0000, 0xff00, 0xff, 0x0); | |||
SDL_BlitSurface(tmp, NULL, surface, NULL); | |||
pixels = (uint8_t *)surface->pixels; | |||
for(y = 0; y < HEIGHT; y++) | |||
for(x = 0; x < WIDTH; x++) | |||
for(c = 0; c < 3; c++) | |||
{ | |||
src[y * stride + x * 3 + c] | |||
= ctoi(pixels[y * surface->pitch + x * 4 + 2 - c] * 0x101); | |||
dst[y * stride + x * 3 + c] = 0; | |||
} | |||
#endif | |||
/* Let the fun begin */ | |||
for(y = 0; y < HEIGHT; y++) | |||
{ | |||
uint8_t bg = 0, fg = 7; | |||
fprintf(stderr, "\rProcessing... %i%%", (y * 100 + 99) / HEIGHT); | |||
for(x = 0; x < WIDTH; x += 6) | |||
{ | |||
int errvec[3] = { 0, 0, 0 }; | |||
int dummy, i; | |||
uint8_t command; | |||
depth = (x + DEPTH < WIDTH) ? DEPTH : (WIDTH - x) / 6 - 1; | |||
srcl = src + y * stride + x * 3; | |||
dstl = dst + y * stride + x * 3; | |||
/* Recursively compute and apply best command */ | |||
command = bestmove(srcl, bg, fg, errvec, depth, 0x7fffff, | |||
&dummy, dstl); | |||
/* Propagate error */ | |||
for(c = 0; c < 3; c++) | |||
{ | |||
for(i = 0; i < 6; i++) | |||
{ | |||
int error = srcl[i * 3 + c] - dstl[i * 3 + c]; | |||
srcl[i * 3 + c + 3] = | |||
clamp(srcl[i * 3 + c + 3] + error * FS0 / FSX); | |||
srcl[i * 3 + c + stride - 3] += error * FS1 / FSX; | |||
srcl[i * 3 + c + stride] += error * FS2 / FSX; | |||
srcl[i * 3 + c + stride + 3] += error * FS3 / FSX; | |||
} | |||
for(i = -1; i < 7; i++) | |||
srcl[i * 3 + c + stride] = clamp(srcl[i * 3 + c + stride]); | |||
} | |||
/* Iterate */ | |||
domove(command, &bg, &fg); | |||
/* Write byte to file */ | |||
fwrite(&command, 1, 1, f); | |||
} | |||
} | |||
fclose(f); | |||
fprintf(stderr, " done.\n"); | |||
/* Save everything */ | |||
#if defined _WIN32 | |||
for(y = 0; y < HEIGHT; y++) | |||
for(x = 0; x < WIDTH; x++) | |||
{ | |||
uint8_t r = dst[y * stride + x * 3] / 0x100; | |||
uint8_t g = dst[y * stride + x * 3 + 1] / 0x100; | |||
uint8_t b = dst[y * stride + x * 3 + 2] / 0x100; | |||
SetPixel(hdc, x, y, RGB(r, g, b)); | |||
} | |||
binfo.bmiHeader.biSize = sizeof(binfo.bmiHeader); | |||
binfo.bmiHeader.biBitCount = 0; | |||
GetDIBits(hdc, tmp, 0, 0, NULL, &binfo, DIB_RGB_COLORS); | |||
switch(binfo.bmiHeader.biBitCount) | |||
{ | |||
case 24: | |||
bisize = sizeof(BITMAPINFOHEADER); | |||
break; | |||
case 16: | |||
case 32: | |||
bisize = sizeof(BITMAPINFOHEADER) + sizeof(DWORD) * 3; | |||
break; | |||
default: | |||
bisize = sizeof(BITMAPINFOHEADER) | |||
+ sizeof(RGBQUAD) * (1 << binfo.bmiHeader.biBitCount); | |||
break; | |||
} | |||
pbinfo = (PBITMAPINFO)GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT, bisize); | |||
memcpy(pbinfo, &binfo, sizeof(BITMAPINFOHEADER)); | |||
bfheader.bfType = 0x4D42; /* "BM" */ | |||
bfheader.bfSize = sizeof(BITMAPFILEHEADER) | |||
+ bisize + pbinfo->bmiHeader.biSizeImage; | |||
bfheader.bfReserved1 = 0; | |||
bfheader.bfReserved2 = 0; | |||
bfheader.bfOffBits = sizeof(BITMAPFILEHEADER) + bisize; | |||
pixels = GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT, | |||
binfo.bmiHeader.biSizeImage); | |||
GetDIBits(hdc, tmp, 0, pbinfo->bmiHeader.biHeight, | |||
pixels, pbinfo, DIB_RGB_COLORS); | |||
hfile = CreateFile(BMPFILE, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, | |||
FILE_ATTRIBUTE_ARCHIVE, NULL); | |||
WriteFile(hfile, &bfheader, sizeof(BITMAPFILEHEADER), &ret, NULL); | |||
WriteFile(hfile, pbinfo, bisize, &ret, NULL); | |||
WriteFile(hfile, pixels, pbinfo->bmiHeader.biSizeImage, &ret, NULL); | |||
CloseHandle(hfile); | |||
GlobalFree(pbinfo); | |||
GlobalFree(pixels); | |||
#else | |||
for(y = 0; y < HEIGHT; y++) | |||
for(x = 0; x < WIDTH; x++) | |||
for(c = 0; c < 3; c++) | |||
pixels[y * surface->pitch + x * 4 + 2 - c] | |||
= itoc(dst[y * stride + x * 3 + c]) / 0x100; | |||
SDL_SaveBMP(surface, BMPFILE); | |||
#endif | |||
return 0; | |||
} | |||
@@ -0,0 +1,139 @@ | |||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||
<head> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||
<meta name="GENERATOR" content="vim" /> | |||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||
<meta name="Description" content="Caca Labs - img2oric" /> | |||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, colour quantisation, dithering, oric" /> | |||
<title>Caca Labs - img2oric</title> | |||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||
</head> | |||
<body> | |||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||
<img src="oric.png" width="200" height="130" | |||
alt="Oric computer" style="float: left; border: 0px;" /> | |||
<p> <tt>img2oric</tt> converts images to the Oric screen format. The <a | |||
href="http://www.defence-force.org/computing/oric/gallery/index.htm">Oric | |||
screen format</a> is one of the most twisted standards and very little artwork | |||
exists for this vintage computer. It was therefore the perfect challenge for | |||
the Caca Labs image processing team. </p> | |||
<p> The graphical part of the Oric screen has 240×200 pixels and can only | |||
display 8 different colours (black, blue, red, green, cyan, magenta, yellow | |||
and white). Each horizontal group of 6 pixels can only use two different | |||
colours: the foreground and the background colours. The background <i>or</i> | |||
the foreground colour may also be changed (one at a time), but while doing | |||
so the next 6 pixels cannot be chosen: they will use the background colour | |||
instead. Finally, a special bit may be activated to display the current group | |||
of pixels in reverse video. </p> | |||
<h2 style="clear: both;"> Downloads </h2> | |||
<p> No real downloads are available yet. However, the file <tt><a | |||
href="img2oric.c">img2oric.c</a></tt> may be compiled on Linux to obtain an | |||
almost functional, yet extremely slow (around 2 minutes to process an image on | |||
a modern computer) program. </p> | |||
<h2> Usage </h2> | |||
<p> <tt>img2oric</tt> will output to <tt>output.bmp</tt>, an image file | |||
containing the new version, and to <tt>OUTPUT.TAP</tt> which contains the | |||
Oric-format file. </p> | |||
<p> You can download a <a href="OUTPUT.TAP">sample <tt>OUTPUT.TAP</tt></a> | |||
file as generated by <tt>img2oric</tt>. To load it into an Oric | |||
computer, or an emulator such as <tt>xeuphoric</tt>, just type | |||
<b><tt>HIRES:CLOAD"OUTPUT"</tt></b> and it will be immediately displayed: </p> | |||
<p style="text-align: center;"> | |||
<img src="real-oric.jpeg" width="360" height="338" class="matrix" alt="" /> | |||
<br /> | |||
<span style="font-size: 60%"><i>photography courtesy of André Chéramy</i></span> | |||
</p> | |||
<h2> Screenshots </h2> | |||
<p> These images show how <tt>img2oric</tt> performs. The results may not seem | |||
terribly clean, but they are probably better than anything that has been seen | |||
so far on an Oric computer. </p> | |||
<p> These first 4 images show the results on the same images than the ones | |||
on Dbug’s <a href="http://www.defence-force.org/computing/oric/coding/annexe_3/pictconv/">PictConv</a> website, to illustrate the improvements over the | |||
traditional RGB separation technique. </p> | |||
<p style="text-align: center;"> | |||
<img src="buffy.png" width="240" height="200" class="inline" alt="" /> | |||
<img src="output-buffy.png" width="240" height="200" class="inline" alt="" /> | |||
</p> | |||
<p style="text-align: center;"> | |||
<img src="mire.png" width="240" height="200" class="inline" alt="" /> | |||
<img src="output-mire.png" width="240" height="200" class="inline" alt="" /> | |||
</p> | |||
<p style="text-align: center;"> | |||
<img src="dog.png" width="240" height="200" class="inline" alt="" /> | |||
<img src="output-dog.png" width="240" height="200" class="inline" alt="" /> | |||
</p> | |||
<p style="text-align: center;"> | |||
<img src="lena.png" width="240" height="200" class="inline" alt="" /> | |||
<img src="output-lena.png" width="240" height="200" class="inline" alt="" /> | |||
</p> | |||
<p> The following images show <tt>img2oric</tt>’s results with grayscale | |||
images and cartoon images. </p> | |||
<p style="text-align: center;"> | |||
<img src="bufbw.png" width="240" height="200" class="inline" alt="" /> | |||
<img src="output-bufbw.png" width="240" height="200" class="inline" alt="" /> | |||
</p> | |||
<p style="text-align: center;"> | |||
<img src="homer.png" width="240" height="200" class="inline" alt="" /> | |||
<img src="output-homer.png" width="240" height="200" class="inline" alt="" /> | |||
</p> | |||
<p> The following images use real Oric artwork, taken from the Buggy Boy | |||
and the VIP 4 demos: they are almost pixel-perfect. </p> | |||
<p style="text-align: center;"> | |||
<img src="bb.png" width="240" height="200" class="inline" alt="" /> | |||
<img src="output-bb.png" width="240" height="200" class="inline" alt="" /> | |||
</p> | |||
<p style="text-align: center;"> | |||
<img src="eatme.png" width="240" height="200" class="inline" alt="" /> | |||
<img src="output-eatme.png" width="240" height="200" class="inline" alt="" /> | |||
</p> | |||
<p> And finally, this is an animation whose frames were converted to Oric | |||
colours using <tt>img2oric</tt>: </p> | |||
<p style="text-align: center;"> | |||
<img src="bear.gif" width="240" height="200" class="inline" alt="" /> | |||
<img src="output-bear.gif" width="240" height="200" class="inline" alt="" /> | |||
</p> | |||
<h2> Credits </h2> | |||
<p> <tt>img2oric</tt> was written by Sam Hocevar. Thanks to Jean-Yves | |||
Lamoureux, Mickaël Pointier, Robert Chéramy, André Chéramy and Fabrice | |||
Frances for their help, their work and the information they provided. </p> | |||
<?php $rev = '$Id$'; | |||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||
</body> | |||
</html> |
@@ -0,0 +1,376 @@ | |||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||
<head> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||
<meta name="GENERATOR" content="vim" /> | |||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||
<meta name="Description" content="libcaca - Colour AsCii Art library" /> | |||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" /> | |||
<title>libcaca - Colour AsCii Art library</title> | |||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||
</head> | |||
<body> | |||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||
<img src="logo-caca.png" width="128" height="128" | |||
alt="libcaca logo" class="caca" /> | |||
<h2> Introduction </h2> | |||
<p> <i>libcaca</i> 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 <a href="http://aa-project.sourceforge.net/aalib/">AAlib</a> | |||
library, with the following improvements: </p> | |||
<ul> | |||
<li> Unicode support </li> | |||
<li> 2048 available colours (some devices can only handle 16) </li> | |||
<li> dithering of colour images </li> | |||
<li> advanced text canvas operations (blitting, rotations) </li> | |||
</ul> | |||
<p> 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. </p> | |||
<p> Libcaca was written by Sam Hocevar <<a | |||
href="mailto:sam@zoy.org">sam@zoy.org</a>> and Jean-Yves Lamoureux | |||
<<a href="mailto:jylam@lnxscene.org">jylam@lnxscene.org</a>>. It is | |||
<a href="http://www.gnu.org/philosophy/free-sw.html">free software</a>, | |||
and can be used, modified and distributed under the terms of the <a | |||
href="http://sam.zoy.org/wtfpl/">Do What The Fuck You Want To Public | |||
License</a>. </p> | |||
<p style="text-align: center;"> | |||
<a href="http://www.ohloh.net/projects/9011?ref=WidgetProjectThinBadge"><img src="http://www.ohloh.net/projects/9011/widgets/project_thin_badge.gif" width="100" height="16" alt="libcaca Ohloh metrics" /></a> | |||
<a href="http://www.ohloh.net/projects/9018?ref=WidgetProjectThinBadge"><img src="http://www.ohloh.net/projects/9018/widgets/project_thin_badge.gif" width="100" height="16" alt="toilet Ohloh metrics" /></a> | |||
</p> | |||
<h2> News </h2> | |||
<ul> | |||
<li> <b>18 May 2008</b>: <a href="/wiki/zzuf">zzuf</a> 0.11 </li> | |||
<li> <b>1 Apr 2008</b>: libcaca to be <a href="http://blog.thebehrens.net/2008/04/01/new-highly-portable-canvas-backend/">OpenOffice.org’s official multiplatform rendering backend</a> </li> | |||
<li> <b>24 Feb 2008</b>: we are now using <a href="/wiki">Trac</a>! </li> | |||
<li> <b>24 Jan 2008</b>: <a href="/labs/img2oric.html">img2oric</a>, the | |||
first Caca Labs piece of research software </li> | |||
<li> <b>28 Nov 2007</b>: libcaca 0.99.beta13 </li> | |||
<li> <b>24 Oct 2007</b>: Report on <a href="/cacacon07/">CacaCon’07</a>, the | |||
first international libcaca conference. </li> | |||
<!-- old news | |||
<li> <b>30 Sep 2007</b>: libcaca 0.99.beta12 </li> | |||
<li> <b>16 Nov 2006</b>: libcaca 0.99.beta11 </li> | |||
<li> <b>16 Nov 2006</b>: <a href="/toilet.html">TOIlet</a> 0.1 </li> | |||
<li> <b>12 Nov 2006</b>: libcaca 0.99.beta10 </p> | |||
<li> <b>6 Nov 2006</b>: libcaca 0.99.beta9 </p> | |||
<li> <b>22 Oct 2006</b>: libcaca 0.99.beta8 </p> | |||
<li> <b>4 Oct 2006</b>: libcaca 0.99.beta7 </p> | |||
--> | |||
</ul> | |||
<img src="img/sample.png" width="128" height="128" | |||
alt="libcaca rendering sample" class="caca" /> | |||
<h2> Screenshots </h2> | |||
<p> Here are a few <i>libcaca</i> screenshots. </p> | |||
<table cellspacing="5" border="0"> | |||
<tr> | |||
<td align="center"> | |||
<a href="img/stitch-80x45.png"><img alt="cacaview" | |||
width="73" height="90" | |||
src="img/tn-stitch-80x45.jpeg" /></a> | |||
<br /><small><code>cacaview</code></small> | |||
</td> | |||
<td align="center"> | |||
<a href="img/cacaball-80x50.png"><img alt="cacaball" | |||
width="101" height="90" | |||
src="img/tn-cacaball-80x50.jpeg" /></a> | |||
<br /><small><code>cacaball</code></small> | |||
</td> | |||
<td align="center"> | |||
<a href="img/cacaplas-80x50.png"><img alt="cacaplas" | |||
width="101" height="90" | |||
src="img/tn-cacaplas-80x50.jpeg" /></a> | |||
<br /><small><code>cacaplas</code></small> | |||
</td> | |||
<td align="center"> | |||
<a href="img/truecolor-32x16.png"><img alt="truecolor" | |||
width="87" height="90" | |||
src="img/tn-truecolor-32x16.jpeg" /></a> | |||
<br /><small>TrueColor</small> | |||
</td> | |||
<td align="center"> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td align="center"> | |||
<a href="img/unicode-80x24.png"><img alt="unicode" | |||
width="120" height="75" | |||
src="img/tn-unicode-80x24.jpeg" /></a> | |||
<br /><small>Unicode</small> | |||
</td> | |||
<td align="center"> | |||
<a href="img/swallow-80x32.png"><img alt="swallow" | |||
width="120" height="81" | |||
src="img/tn-swallow-80x32.jpeg" /></a> | |||
<br /><small>swallowing applications</small> | |||
</td> | |||
<td align="center"> | |||
<a href="img/rotate.png"><img alt="rotation" | |||
width="75" height="90" | |||
src="img/tn-rotate.jpeg" /></a> | |||
<br /><small>canvas rotation</small> | |||
</td> | |||
<td align="center"> | |||
</td> | |||
<td align="center"> | |||
</td> | |||
</tr> | |||
</table> | |||
<p> See also the various export formats, generated from an old | |||
<a href="lc-mw1.ans">ANSI file</a>: | |||
<a href="export.png">PNG</a> (through TGA), | |||
<a href="export.html">HTML</a>, | |||
<a href="export.svg">SVG</a>, | |||
<a href="export.ps">PostScript</a>. | |||
</p> | |||
<!-- | |||
<p> Here are my first libcaca attempts. The first image is, | |||
<code>cacaview</code>, the libcaca image viewer. Then, two | |||
screenshots of my first port of an application to libcaca: the <a | |||
href="http://www.videolan.org/vlc/">VLC</a> media player. The last | |||
screenshots are from <code>cacafire</code> (the libcaca port of aafire) and | |||
<code>cacaball</code> (a mini metaballs demo). </p> | |||
<table cellspacing="5" border="0"> | |||
<tr> | |||
<td align="center"> | |||
<a href="caca-stitch.png"><img alt="cacaview" | |||
width="78" height="90" | |||
src="tn-caca-stitch.jpeg" /><br /><code>cacaview</code></a> | |||
</td> | |||
<td align="center"> | |||
<a href="caca-vlc.png"><img alt="VLC playing the Matrix: Revolutions" | |||
width="120" height="74" | |||
src="tn-caca-vlc.jpeg" /><br />VLC media player</a> | |||
</td> | |||
<td align="center"> | |||
<a href="caca-vlc3.png"><img alt="VLC playing a Dolby trailer" | |||
width="120" height="74" | |||
src="tn-caca-vlc3.jpeg" /><br />VLC media player</a> | |||
</td> | |||
<td align="center"> | |||
<a href="caca-fire.png"><img alt="cacafire" | |||
width="120" height="87" | |||
src="tn-caca-fire.jpeg" /><br /><code>cacafire</code></a> | |||
</td> | |||
<td align="center"> | |||
<a href="caca-ball.png"><img alt="cacaball" | |||
width="104" height="90" | |||
src="tn-caca-ball.jpeg" /><br /><code>cacaball</code></a> | |||
</td> | |||
</tr> | |||
</table> | |||
<p> As with all image processing applications, I needed the obligatory <a | |||
href="http://www-2.cs.cmu.edu/~chuck/lennapg/">Lenna</a> samples. From | |||
left to right: the currently in development Floyd-Steinberg dithering, the | |||
antialiasing introduced in libcaca 0.5, the new renderer in libcaca 0.2, no | |||
dithering, ordered dithering, random dithering. </p> | |||
<table cellspacing="5" border="0"> | |||
<tr> | |||
<td align="center"> | |||
<a href="lenna-fs.png"><img alt="Lenna (Floyd-Steinberg)" | |||
width="87" height="90" | |||
src="tn-lenna-fs.jpeg" /><br />Floyd-Steinberg</a> | |||
</td> | |||
<td align="center"> | |||
<a href="lenna-antialias.png"><img alt="Lenna (antialiased)" | |||
width="97" height="90" | |||
src="tn-lenna-antialias.jpeg" /><br />antialiasing</a> | |||
</td> | |||
<td align="center"> | |||
<a href="lenna-new.png"><img alt="Lenna (new renderer)" | |||
width="99" height="90" | |||
src="tn-lenna-new.jpeg" /><br />new renderer</a> | |||
</td> | |||
<td align="center"> | |||
<a href="lenna-nodither.png"><img alt="Lenna (no dithering)" | |||
width="99" height="90" | |||
src="tn-lenna-nodither.jpeg" /><br />no dithering</a> | |||
</td> | |||
<td align="center"> | |||
<a href="lenna-ordered.png"><img alt="Lenna (ordered dithering)" | |||
width="99" height="90" | |||
src="tn-lenna-ordered.jpeg" /><br />ordered dithering</a> | |||
</td> | |||
<td align="center"> | |||
<a href="lenna-random.png"><img alt="Lenna (random dithering)" | |||
width="99" height="90" | |||
src="tn-lenna-random.jpeg" /><br />random dithering</a> | |||
</td> | |||
</tr> | |||
</table> | |||
<p> Here are a few examples of my libcaca patch for libSDL. Once there is a | |||
libcaca backend for <a href="http://www.libsdl.org">libSDL</a>, any program | |||
using SDL can automatically benefit from libcaca’s rendering routines. These | |||
examples show <a href="http://www.frozen-bubble.org/">Frozen Bubble</a>, the | |||
<a href="http://sabre.cobite.com/">SABRE</a> flight simulator, and the famous | |||
<a href="http://www.idsoftware.com/games/doom/">Doom</a>. Frozen Bubble is | |||
fully playable, but SABRE and Doom aren’t much due to the Ctrl and Shift keys | |||
not being recognized (see the TODO list about that). </p> | |||
<table cellspacing="5" border="0"> | |||
<tr> | |||
<td align="center"> | |||
<a href="caca-fb.png"><img alt="ASCII art Frozen Bubble" | |||
width="120" height="90" | |||
src="tn-caca-fb.jpeg" /><br />Frozen Bubble</a> | |||
</td> | |||
<td align="center"> | |||
<a href="caca-sabre.png"><img alt="the SABRE flight simulator" | |||
width="120" height="90" | |||
src="tn-caca-sabre.jpeg" /><br />SABRE</a> | |||
</td> | |||
<td align="center"> | |||
<a href="caca-doom.png"><img alt="the Doom splash screen in ASCII art" | |||
width="120" height="90" | |||
src="tn-caca-doom.jpeg" /><br />Doom splash screen</a> | |||
</td> | |||
<td align="center"> | |||
<a href="caca-doom2.png"><img alt="Doom in ASCII art" | |||
width="120" height="90" | |||
src="tn-caca-doom2.jpeg" /><br />first Doom level</a> | |||
</td> | |||
</tr> | |||
</table> | |||
<h2> Download libcaca </h2> | |||
<p> libcaca is already in the Debian sid distribution. Debian woody users or | |||
sid users in a hurry may use one of the following apt sources: (sorry, sarge | |||
is not supported yet) </p> | |||
<table class="leftmenu" cellspacing="5" cellpadding="0"> | |||
<tr> | |||
<td class="nowrap" valign="top"> | |||
<code> | |||
deb http://sam.zoy.org/projects/debian woody main<br /> | |||
deb-src http://sam.zoy.org/projects/debian woody main<br /> | |||
<br /> | |||
deb http://sam.zoy.org/projects/debian sid main<br /> | |||
deb-src http://sam.zoy.org/projects/debian sid main<br /> | |||
</code> | |||
</td> | |||
</tr> | |||
</table> | |||
<p> Users of RPM-based distributions (Red Hat, Fedora, Mandrake) may find RPM | |||
packages on the <a href="http://yarrow.freshrpms.net/rpm.html?id=552">Fresh | |||
RPMs</a> page. If no package is available, you are encouraged | |||
to build packages for your system using this SRPM (<a | |||
href="libcaca-0.9-1.src.rpm">libcaca-0.9-1.src.rpm</a>, 176KB) and this simple | |||
command line: </p> | |||
<table class="leftmenu" cellspacing="5" cellpadding="0"> | |||
<tr> | |||
<td class="nowrap" valign="top"> | |||
<code>rpm -<!>-rebuild libcaca-0.9-1.src.rpm</code> | |||
</td> | |||
</tr> | |||
</table> | |||
<p> BSD users should see the <a | |||
href="http://www.netbsd.org/packages/graphics/libcaca/README.html">NetBSD port | |||
page</a> and the <a href="http://www.freshports.org/graphics/libcaca/">FreeBSD | |||
port page</a> (I am not aware of an OpenBSD port yet, but <a | |||
href="http://news.gw.com/openbsd.ports/15502">this email</a> has | |||
information on it), Gentoo users may find information on the <a | |||
href="http://gentoo-portage.com/browse-program.php?program=6273">Gentoo | |||
portage</a> and Slackware users have a package on <a | |||
href="http://www.linuxpackages.net/pkg_details.php?id=2144">linuxpackages.net</a>. | |||
</p> | |||
<h2> Patch for libSDL </h2> | |||
<p> This simple patch was quickly hacked from the AAlib video | |||
driver. Apply it to the libSDL sources and configuree libSDL with | |||
<code>-<!>-enable-video-caca</code>. Then use the <code>SDL_VIDEODRIVER</code> | |||
environment variable to run your SDL programs with libcaca output, for | |||
instance Frozen Bubble: </p> | |||
<table class="leftmenu" cellspacing="5" cellpadding="0"> | |||
<tr> | |||
<td class="nowrap" valign="top"> | |||
<code>SDL_VIDEODRIVER=caca frozen-bubble</code> | |||
</td> | |||
</tr> | |||
</table> | |||
<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> | |||
<h2> Patches for VLC, xine, mplayer... </h2> | |||
<p> The libcaca patch for the <a href="http://www.videolan.org/vlc/">VLC</a> | |||
media player was already applied upstream. Check the CVS version. </p> | |||
<p> There is a work in progress for <a href="http://xine.sf.net/">xine</a> | |||
called cacaxine (see <a href="http://sourceforge.net/mailarchive/forum.php?thread_id=3605187&forum_id=7131">this email</a>). Zeeshan Ali wrote a | |||
<a href="http://gstreamer.sf.net/">GStreamer</a> plugin. I am not | |||
aware of an <a href="http://mplayerhq.hu/">MPlayer</a> patch yet (but you | |||
should not be using MPlayer anyway, because it sucks). </p> | |||
<h2> Development </h2> | |||
--> | |||
<h2> Why? </h2> | |||
<blockquote><p> | |||
Que dites-vous ?... C’est inutile ?... Je le sais ! | |||
<br />Mais on ne se bat pas dans l’espoir du succès ! | |||
<br />Non ! non, c’est bien plus beau lorsque c’est inutile ! | |||
<br /><small> -- Edmond Rostand, <i>Cyrano de Bergerac</i> </small> | |||
</p></blockquote> | |||
<p> I am perfectly aware that <i>libcaca</i> 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 <i>Mademoiselle de Maupin</i>, which also gives an excellent | |||
explanation for the name “libcaca”: </p> | |||
<blockquote><p> | |||
Il n’y a rien de vraiment beau que ce qui ne peut servir à rien ; tout ce | |||
qui est utile est laid ; car c’est l’expression de quelque besoin ; et ceux | |||
de l’homme sont ignobles et dégoûtants, comme sa pauvre et infirme nature. - | |||
L’endroit le plus utile d’une maison, ce sont les latrines. | |||
</p></blockquote> | |||
<p> As for the name “libcucul”, please refer to the pioneer of modernist | |||
Polish fiction: </p> | |||
<blockquote><p> | |||
Mais contre le cucul, il n’y a pas de refuge. Courez après moi | |||
si vous voulez, je m’enfuis la gueule entre les mains. Et voilà, | |||
tralala, Zut à celui qui le lira ! | |||
<br /><small> -- Witold Gombrowicz, <i>Ferdydurke</i> </small> | |||
</p></blockquote> | |||
<?php $rev = '$Id$'; | |||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||
</body> | |||
</html> |
@@ -0,0 +1,38 @@ | |||
[40m[2J[40m | |||
[7C[0;35mÜÜÜ[49CÜÜÜ | |||
Ü[1;45mÜÜ[40mßßß[45mÜ[0;35mÜ ÜÜ[12CÜ[29CÜ[1;45mÜ[40mßßß[45mÜÜÜ[0;35mÜÜ | |||
Ü[1;45mÜ[40mß[37mÜÜ[47m²²²[40mÜ[35mß[45mÜ[40mßß[45mÜÜ[0;35mÜ ÜÜ Ü[1;45mÜÜ[40mß[45mÜ[0;35mÜ ÜÜ[1;45mÜÜ[0;35mÜÜ ÜÜ[1;45mÜÜÜÜÜÜÜ[0;35mÜÜ ÜÜ[1;45mÜÜÜ[40mß[37mÜ[47m²²²[40mÜÜÜ[35mßß[45mÜ[0;35mÜ | |||
Ü[1;45mÜ[40mß[37mÜ[47m²²²±±±²²[40mÜ[47m²²[40mÜÜ[35mß[45mÜ[0;35mÜ[1;45mÜ[40mßß[45mÜ[40mß[37mÜÜ[47m²[40mÜ[35mß[45mÜ[40mßß[37mÜÜ[35mßß[45mÜ[40mßß[37mÜÜÜÜÜÜÜ[35mßß[45mÜ[0;35mÜ[1;45mÜ[40mßß[37mÜÜ[35mßÝ[37mÞ[47m²²±²²²²²[40mÜ[35mß[45mÜ[0;35mÜ | |||
[1;45mÞ[40mÝ[37mÞ[47m²±±°±²[40mß[47m²±±±±²²²[40mÜ[35mß[37mÜ[47m²²[40mÜß[47m²²±²[40mÝÜ[47m²²²²²²[40mÜß[47m²²²²²²²²²²[40mÜ[35mß[37mÜ[47m²²²²²[40mÜ [47m²²±±±±±²²[40mÝ[35mÞ[45mÝ[0;35mÝ | |||
[1mÛ [37;47m²±±°°±[0mÝ [1mÞ[47m²²[0mß[1;47m²±±²²[40mÝÞ[47m±±±²[40mÜ[0mß[1;47m±±±²±±°[0mß[1;47m±°±²[1C²±±±°±±±²²ß[1C²±°±±±²[1C²²±°°±±[40mÛ [35mÛ[0;35mÛ | |||
[1;45mÞ[40mÝ[0mÞ[1;47m±°[30m°°°±[40mÜ [0mß[1;35mÜÝ[0mÞ[1;47m²±±²²[1C°[0mÞ[1;47m°°±[0mÝÞ[1;47m°°±°[0mÛ Þ[1;47m° °±[0mÝÞ[1;47m±°° °°±[0mßßÜ[1;47m±±°[1C[0mß[1;47m°°±[0mÛ [1;47m±°°°°±[1C[35;40mÛ[0;35mÛ ÜÜ | |||
Û[1mÛ [37;47m°[30m±±°±±²²[40mÜ[35mß[0mÜ[1;47m²±°°±²[0mÝ[1;30;47m°[40mÜ[47m°°°±[1C°°[37m°[30m°°±±°[37m°°[0mÛ [1;47m°[0mß Þ[1;30;47m° [37m°[0mÝÞ[1;47m°°°°[30m°°°[37m° °°[0mÝÞ[1;47m°°°[30m°[1C[35;40mÛ[0;35mÛÜ[1;45mÜÜ[40mßß[45mÜ[0;35mÜ | |||
Þ[1;45mÞ[40mÝ[30mÞ[47m²²±±²²[40mßÜ[47m°[37m±°° °±±²[1C[30m±±±²[40mÝÞ[47m±±±°°±²²[40mß[0mß[1;35mÜ[30mß[35mÜÛ [30;47m±°°°°[1C±°°±±[40mß[47m±±° °°[1C[37m°[30m°°[0mÝ[1;35mÞÛßß[0mÜ[1;30mÜ[47m²²[40mÜ[35mß[45mÜ[0;35mÜ | |||
ß[1;45mß[40mÜ[30mß[47m²²²[40mßÜ[47m²²±±°° °[37m°±[0mÝ[1;30mÞ[47m²²[40mßßÜ[47m²²[40mß[47m²±±°[40mÜÜÜ[35mßßßÛÝ[30mÞ[47m±±°±±±[1C²±±[40mÝ Þ[47m±±°±±[40mÝ[47m±±°±[0mÜÜ[1;30;47m°°°±±±²²[40mÜ[35mß[45mÜ[0;35mÜ ß[1;45mß[40mÜ[30mß [47m²²²±±°° °°[37m°°[1C[35;40mÜÜÜ[45mßß[40mÜÜÜ[45mß[40mÜ[30mß[47m²²±±±°°°[40mÜÜÜß[47m²²²[40mßÜ[47m²²²²²[1C²²±±±²²[1C²±±±°°°±±±±±²²²[40mÜ[35mß[5C[0;35mÛ[1;45mßß[40mÜ[30mßß[47m²²²±±±°°[40mÝ[35mÞ[45mÝ[0;35mßÛÜ ßßß ß[1;45mß[40mÜÜ[30mß[47m²²±±²²²²[40mß[35mÜ[30mß[35mÜ[45mß[40mÜÜ[30mßßß[35mÜÜÜ[30mß[47m²²²²[40mÝÞ[47m²²²²±±±±²²²²²[40mßß[35mÜ[45mß[3C[0;35mÜ[1;45mÜ[40mß[45mÜ[0;35mÜß[1;45mßß[40mÜÜ[30mßß[47m²²²[40mß[35mÜ[45mßÜÜ[40mßß[45mÜ[0;35mÜ Ü[1;45mÜ[40mßßßßÜÜ[30mßß[47m²²[40mß[35mÜÛßßßß[45mÜÜßßß[0;35mÛÛß[1;45mß[40mÜÜ[30mßß[35mÜÜÜ[30mßßß[47m²²²²[40mßßß[35mÜÜ[45mßß[0;35mß | |||
Ü[1;45mÜ[40mß[37mÜ[47m²[40mÜ[35mß[45mÜÜ[0;35mÜ[45m [40mß[1;45mßß[40mÜÜÜÛßß[37mÜÜ[47m²²[40mÜ[35mß[45mÜÜ[40mß[0;31mÜ[1;41m°±²±[0;31mÜ[1;35mßÛÛÜÜß[37mÜÜ[47m²²²²[40mÜÜ[35mßß[45mÜ[40mßß[45mÜÜ[0;35mÛß[1;45mßß[0;35mÛ[1;45mÜ[40mß[37mÜÜÜ [35mÜÜ[45mßßß[0;35mßß | |||
Þ[1;45mÞ[40mÝ[37mÞ[47m²²²[40mÜÜ[35mßß[45mÜÜ[0;35mÜ[45m [1mÜ[40mß[37mÜ[47m²²²±±±²²[2C[0;31mÛ[1;41m°±²[37m²[31m²±[0;31mÛ [1;35mÛß[37mÜ[47m²²²±±°±²²²²[40mÜß[47m²[40mÜÜ[35mß[45mÜ[0;35mÜÛ[1mÛ [37;47m²²²²²²[40mÜ[35mß[45mÜ[0;35mÜ | |||
Û[1mÛ [37;47m²²±±±²²[40mÜÜ[35mßß[45mÜ[40mÝ[0mÞ[1;47m±±±°°°±±[1C[35;40mÛÜ[0;31mß[1;41m°±²±[0;31mß[1;35mÜÛÝ[37mÞ[47m²²±±°°°°±±±²²[40mÛ [47m²²²[40mÜ[35mß[45mÜ[40mß[37mÞ[47m²²±±±²²[40mÝ[35mÞ[45mÝ[0;35mÝ | |||
Þ[1;45mÞ[40mÝ[37mÞ[47m²±±°±±²²²²[40mÜ[35mß [37;47m±°°°[30m°[37m°°±[0mÝ[1;35mßÜÛÜÜÜÜßß[37mÜ [47m±±°°°[30m°[37m°[0mß[1;47m±°°°±±[0mÝÞ[1;47m²±±²[40mÜÜ[47m±±±±°°°±²²[1C[35;40mÛ[0;35mÛ | |||
Û[1mÛ [37;47m²²±°°°±±±±[0mÝ[1;35mßÝ[0mÞ[1;47m±°[30m° [37m°°°[1C²[40mÜÜ[35mßß[37mÜÜ[47m²²²[40mÝ [47m°°[30m±±°[37m°[0mÝÞ[1;30;47m°°±[37m°[0mßÜ[1;47m±°°°±±±°°°° [30m°[37m°°°±[0mÝ[1;35mÞ[45mÝ[0;35mÝ | |||
Û[1mÛ [37;47m±°[30m°°°[37m°°°°[0mÜ[1;47m°[0mÜ[1;47m°°[30m° °°[37m°[0mÝ Þ[1;47m²²±±°±±±²[2C[30;40mÜ[0mÜÜÜß[1;30;47m°±[40mÜ[0mß[1;30;47m±[40mß[0mÜ[1;30;47m°[37m°°[30m° °[37m°°[0mßßß[1;47m°[30m°° °°[37m°°[0mÝ[1;35mÞ[45mÝ[0;35mÝ | |||
[5CÛ[1mÛ [37;47m°[30m±±±°°°±[37m°[30m²[37m°[30m±±°°°±±[2C[37m±°°°[30m°°[37m°°°[0mÝ[1;30mÜ[47m±±°°°°°±±±[40mÜ [47m±±°°°°±±[40mÝÜ[47m±±°°°°°±²[1C[35;40mÛ[0;35mÛ | |||
[6Cß[1;45mß[40mÜ[30mß[47m²²±±±±²[40mß[47m²²±±±²²[2C±±±²²²²±±±[1C²²²±±±±±²²²[40mß[35mÜÛ [30;47m²²±±±±²²[40mÞ[47m²±±±±±±²[40mÝ[35mÞ[45mÝ[0;35mÝ | |||
[8Cß[1;45mß[40mÜ[30mßß[47m²²[40mß[35mÜ[45mß[40mÜ[30mßß[47m²²[40mß Ü[47m²²²[40mßß[35mÜÜ[30mßß[47m²²²[40mÜßß[47m²²²²²²[40mß[35mÜ[45mß[0;35mßß[1;45mß[40mÜ[30mß[47m²²²²[40mßß[35mÜ[30mßß[47m²²²²²[40mß[35mÜ[45mß[0;35mß | |||
[10Cß[1;45mßß[40mÜÜ[45mß[0;35mß ß[1;45mßß[40mÜÜ[45mß[40mÛÜÜÜÜÛ[45mß[0;35mÛ[1;45mÜ[40mÛÛÜÜÜÜ[45mßß[40mÜÜÜÜÜÜÛ[45mÜÜÜ[0;35mÜ ß[1;45mß[40mÜÜÜÜ[45mßß[0;35mß[1;45mßß[40mÜÜÜÜÜ[45mß[0;35mß | |||
[13Cßß[6CÛ[1mÛß[0;34mÜÜÜÜÜÜ[1;35mßß[0;34mÜÜÜÜÜ[1;35mß[45mÜ[0;35mÜÜÛÛÛ[1;45mÜ[40mß[0;34mÜÜÜÜÜ[1;35mß[45mÜ[0;35mÜ ßßßß[5Cßßßßß | |||
[21CÛ[1mÛ [44m [34m°±²[40mÜ [35mÛ [44m [34m°±²[1C[35;40mÛÜßßßßßÛ [44m [34m°±²[1C[35;40mÛ[45mß[0;35mß | |||
[21CÛ[1mÛ [44m [34m°±²[1C[35;40mÛÛ [44m [34m°±²[40mß[35mÜ [44m [34m°±[0;34mßÛ [44m [1m°±²[40mß[35mÜ[45mÜ[0;35mÜ | |||
[21CÛ[1mÛ [44m [34m°±²[1C[35;40mÛÛ [44m [34m°±²[40mÜ[35mß [44m [34m°±²[40mÛ [44m °±²[40mÜ[35mß[45mÜ[0;35mÜ | |||
[22Cß[1;45mß[40mÜÜÜÜ[45mß[0;35mßß[1;45mß[40mÜÜÜÜÜ[45mß[40mÛÜÜÜÜÜ[45mßß[40mÜÜÜÜÜ[45mß[0;35mß | |||
[24Cßßßß ßßßßß ßßßßßß ßßßßß | |||
[27C[1;37mM O R T A L W [30mi [37mS H | |||
[30mÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ | |||
[18C[0;35mPiL HQ [1;37mþ [0;35mSyndrome Couriers HQ [1;37mþ [0;35mGODS WHQ | |||
[16C16.8 Duals [1;37mþ [0;35m8i8.XxX.XxXx [1;37mþ [0;35m8 Node Ringdown | |||
[25CS: QUAZiMODEM & CiPHER | |||
[20CCO'S: LORD THiNKER THE MOZARELLO | |||
[19CSLiCE & DiCE [1;37mþ [0;35mHURRiCAN [1;37mþ [0;35mRAZOR BLADE | |||
[1;30mßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß[24CANSi BY [37mLUC [30m< [34mAiM [30m'[0;34mNiNE FO[1;30m' > | |||
[0m |
@@ -0,0 +1,50 @@ | |||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||
<head> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||
<meta name="GENERATOR" content="vim" /> | |||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||
<meta name="Description" content="libcaca SVN mailing-list" /> | |||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" /> | |||
<title>libcaca SVN mailing-list</title> | |||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="stylesheet" type="text/css" href="doxygen.css" /> | |||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||
</head> | |||
<body> | |||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||
<?php | |||
$page = $_GET['page']; | |||
$page = eregi_replace("[^a-z0-9_]", "", $page); | |||
$file = $_SERVER["DOCUMENT_ROOT"]."/list-svn/".$page.".html"; | |||
if(file_exists($file)) | |||
{ | |||
$f = fopen($file, 'r'); | |||
$data = fread($f, filesize($file)); | |||
fclose($f); | |||
$data = eregi_replace(".*<body>", "", $data); | |||
$data = eregi_replace("</body>.*", "", $data); | |||
echo $data; | |||
} | |||
else | |||
{ | |||
?><p>Mailing-list error.</p><? | |||
} | |||
?> | |||
<?php $rev = '$Id$'; | |||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||
</body> | |||
</html> |
@@ -0,0 +1,50 @@ | |||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||
<head> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||
<meta name="GENERATOR" content="vim" /> | |||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||
<meta name="Description" content="libcaca Trac mailing-list" /> | |||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" /> | |||
<title>libcaca Trac mailing-list</title> | |||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="stylesheet" type="text/css" href="doxygen.css" /> | |||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||
</head> | |||
<body> | |||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||
<?php | |||
$page = $_GET['page']; | |||
$page = eregi_replace("[^a-z0-9_]", "", $page); | |||
$file = $_SERVER["DOCUMENT_ROOT"]."/list-trac/".$page.".html"; | |||
if(file_exists($file)) | |||
{ | |||
$f = fopen($file, 'r'); | |||
$data = fread($f, filesize($file)); | |||
fclose($f); | |||
$data = eregi_replace(".*<body>", "", $data); | |||
$data = eregi_replace("</body>.*", "", $data); | |||
echo $data; | |||
} | |||
else | |||
{ | |||
?><p>Mailing-list error.</p><? | |||
} | |||
?> | |||
<?php $rev = '$Id$'; | |||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||
</body> | |||
</html> |
@@ -0,0 +1,58 @@ | |||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||
<head> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||
<meta name="GENERATOR" content="vim" /> | |||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||
<meta name="Description" content="libcaca mailing-list" /> | |||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" /> | |||
<title>libcaca mailing-list</title> | |||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="stylesheet" type="text/css" href="doxygen.css" /> | |||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||
</head> | |||
<body> | |||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||
<?php | |||
$page = $_GET['page']; | |||
$page = eregi_replace("[^a-z0-9_]", "", $page); | |||
$file = $_SERVER["DOCUMENT_ROOT"]."/list/".$page.".html"; | |||
if(file_exists($file)) | |||
{ | |||
$f = fopen($file, 'r'); | |||
$data = fread($f, filesize($file)); | |||
fclose($f); | |||
$data = eregi_replace(".*<body>", "", $data); | |||
$data = eregi_replace("</body>.*", "", $data); | |||
echo $data; | |||
} | |||
else | |||
{ | |||
?> | |||
<p> There are three libcaca mailing-lists: </p> | |||
<ul> | |||
<li> libcaca (<a href="/list/">thread index</a>, <a href="/list/maillist.html">date index</a>) </li> | |||
<li> libcaca-svn (<a href="/list-svn/">thread index</a>, <a href="/list-svn/maillist.html">date index</a>) </li> | |||
<li> libcaca-trac (<a href="/list-trac/">thread index</a>, <a href="/list-trac/maillist.html">date index</a>) </li> | |||
</ul> | |||
<? | |||
} | |||
?> | |||
<?php $rev = '$Id$'; | |||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||
</body> | |||
</html> |
@@ -0,0 +1,185 @@ | |||
/* | |||
* CSS for libcaca | |||
* $Id$ | |||
*/ | |||
/* Common attributes */ | |||
html, body { | |||
padding: 0; | |||
border: 0; | |||
margin: 0; | |||
height: 100%; | |||
} | |||
body { | |||
color: black; | |||
background: url('/browser/www/img/back3.png?format=raw') repeat left top; | |||
background-color: black; | |||
} | |||
body, td, h1, h2, h3, p { | |||
font-family: serif; | |||
} | |||
h1 { | |||
font-size: 1.6em; | |||
font-variant: small-caps; | |||
color: #002200; | |||
background-color: inherit; | |||
} | |||
h2, h3 { | |||
text-indent: 0.5em; | |||
border-style: solid; | |||
border-color: #88aa77; | |||
background-color: inherit; | |||
} | |||
h2 { | |||
font-size: 1.3em; | |||
font-variant: small-caps; | |||
color: #224422; | |||
border-width: 0 0 2px 0; | |||
} | |||
h3 { | |||
font-size: 1.1em; | |||
color: #335533; | |||
border-width: 0 0 1px 0; | |||
} | |||
p { | |||
text-indent: 1em; | |||
text-align: inherit; | |||
} | |||
/* Layout-specific attributes */ | |||
div.gradleft { | |||
/* no longer used */ | |||
} | |||
div.gradright { | |||
/* no longer used */ | |||
} | |||
div.top, div.main, div.bottom { | |||
width: 800px; | |||
display: table-caption; | |||
color: inherit; | |||
background-color: #dddddd; | |||
background: url('/browser/www/img/back4.png?format=raw') repeat left top; | |||
padding: 0 10px 0 10px; | |||
border-style: solid; | |||
border-width: 2px 2px 0 2px; | |||
border-color: black; | |||
margin: 0 auto 0 auto; | |||
text-align: justify; | |||
} | |||
div.top { | |||
border-width: 2px; | |||
margin-top: 10px; | |||
} | |||
div.main { | |||
padding: 5px 10px 5px 10px; | |||
height: 100%; | |||
} | |||
div.bottom { | |||
clear: both; | |||
position: relative; | |||
border-width: 0 2px 2px 2px; | |||
margin-bottom: 5px; | |||
} | |||
div.bottombar { | |||
font-family: monospace; | |||
font-weight: bold; | |||
font-size: smaller; | |||
padding: 0; | |||
border-style: solid; | |||
border-width: 2px 0 0 0; | |||
border-color: #88aa77; | |||
} | |||
img.caca { | |||
border: solid 2px #88aa77; | |||
margin: 10px 20px 10px 20px; | |||
float: right; | |||
} | |||
img.inline, img.inlinetop { | |||
border: solid 2px #88aa77; | |||
padding: 2px; | |||
} | |||
img.inlinetop { | |||
vertical-align: top; | |||
} | |||
img.math { | |||
vertical-align: middle; | |||
margin-left: 10px; | |||
margin-right: 10px; | |||
} | |||
img.matrix { | |||
vertical-align: top; | |||
margin-right: 30px; | |||
margin-top: 10px; | |||
} | |||
div.toilet { | |||
border: solid 2px #88aa77; | |||
padding-left: 10px; | |||
padding-right: 10px; | |||
} | |||
p.toilet { | |||
text-indent: 0; | |||
} | |||
p.dashit { | |||
float: right; | |||
text-align: right; | |||
font-size: smaller; | |||
font-style: italic; | |||
} | |||
a:link { color: #33aa55; background-color: inherit; } | |||
a:visited { color: #117722; background-color: inherit; } | |||
a:hover { color: #aa22dd; background-color: inherit; text-decoration: none; } | |||
a:active { color: #cc22ff; background-color: inherit; } | |||
/* Top menubar handling */ | |||
div.menubar { | |||
text-align: center; | |||
color: inherit; | |||
padding: 8px 0px; | |||
} | |||
a.menubutton { | |||
color: black; | |||
background: url('/browser/www/img/back4.png?format=raw') repeat left top; | |||
background-color: #dddddd; | |||
text-decoration: none; | |||
font-weight: bold; | |||
border: solid black 2px; | |||
padding: 4px 10px 4px 10px; | |||
margin: 0 5px 0 5px; | |||
} | |||
a.menubutton:link { | |||
color: black; | |||
} | |||
a.menubutton:hover { | |||
color: #ffffff; | |||
border-color: #ffffff; | |||
background: inherit; | |||
} | |||
@@ -0,0 +1,54 @@ | |||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||
<head> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||
<meta name="GENERATOR" content="vim" /> | |||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||
<meta name="Description" content="libcaca manual" /> | |||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" /> | |||
<title>libcaca manual</title> | |||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="stylesheet" type="text/css" href="doxygen.css" /> | |||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||
</head> | |||
<body> | |||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||
<div style="text-align: center;"> | |||
<a href="/manual/">^^^ Index</a> | |||
</div> | |||
<?php | |||
$page = $_GET['page']; | |||
$page = eregi_replace("[^-a-z0-9_]", "", $page); | |||
$file = $_SERVER["DOCUMENT_ROOT"]."/manual/".$page.".html"; | |||
if(file_exists($file)) | |||
{ | |||
$f = fopen($file, 'r'); | |||
$data = fread($f, filesize($file)); | |||
fclose($f); | |||
$data = eregi_replace(".*<body>", "", $data); | |||
$data = eregi_replace("</body>.*", "", $data); | |||
echo $data; | |||
} | |||
else | |||
{ | |||
?><p>Documentation error.</p><? | |||
} | |||
?> | |||
<?php $rev = '$Id$'; | |||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||
</body> | |||
</html> |
@@ -0,0 +1,36 @@ | |||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||
<head> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||
<meta name="GENERATOR" content="vim" /> | |||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||
<meta name="Description" content="libcaca - neercs" /> | |||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib" /> | |||
<title>libcaca - neercs</title> | |||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||
</head> | |||
<body> | |||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||
<h2> neercs </h2> | |||
<p> neercs is a work-in-progress libcaca project. More later. </p> | |||
<h2> Screenshots </h2> | |||
<p style="text-align: center;"><img src="neercs-thumbnails.png" width="570" | |||
height="503" alt="neercs sample" /></p> | |||
<?php $rev = '$Id$'; | |||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||
</body> | |||
</html> |
@@ -0,0 +1,34 @@ | |||
# $Id$ | |||
# Do not crawl CVS and .svn directories (they are 403 Forbidden anyway) | |||
User-agent: * | |||
Disallow: CVS | |||
Disallow: .svn | |||
# Prevent excessive search engine hits | |||
Disallow: /cgi-bin/trac.cgi | |||
Disallow: /log | |||
# "This robot collects content from the Internet for the sole purpose of | |||
# helping educational institutions prevent plagiarism. [...] we compare | |||
# student papers against the content we find on the Internet to see if we | |||
# can find similarities." (http://www.turnitin.com/robot/crawlerinfo.html) | |||
# --> fuck off. | |||
User-Agent: TurnitinBot | |||
Disallow: / | |||
# "NameProtect engages in crawling activity in search of a wide range of | |||
# brand and other intellectual property violations that may be of interest | |||
# to our clients." (http://www.nameprotect.com/botinfo.html) | |||
# --> fuck off. | |||
User-Agent: NPBot | |||
Disallow: / | |||
# "iThenticate® is a new service we have developed to combat the piracy | |||
# of intellectual property and ensure the originality of written work for | |||
# publishers, non-profit agencies, corporations, and newspapers." | |||
# (http://www.slysearch.com/) | |||
# --> fuck off. | |||
User-Agent: SlySearch | |||
Disallow: / | |||
@@ -0,0 +1,157 @@ | |||
<?php header("Content-Type: text/html; charset=utf-8"); ?> | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |||
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd"> | |||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |||
<head> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |||
<meta name="GENERATOR" content="vim" /> | |||
<meta name="Author" content="sam@zoy.org (Sam Hocevar)" /> | |||
<meta name="Description" content="Libcaca study - Bibliography" /> | |||
<meta name="Keywords" content="libcaca, ASCII, ASCII ART, console, text mode, ncurses, slang, AAlib, dithering, thresholding" /> | |||
<title>Libcaca study - Bibliography</title> | |||
<link rel="icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> | |||
<link rel="stylesheet" type="text/css" href="/main.css" /> | |||
<style type="text/css"> | |||
li { padding-bottom: 0.5em; } | |||
</style> | |||
</head> | |||
<body> | |||
<?php include($_SERVER["DOCUMENT_ROOT"]."/header.inc"); ?> | |||
<p> <span style="color: #aa0000; font-weight: bold;">Warning</span>: this | |||
document is still work in progress. Feel free to send comments but do not | |||
consider it final material. </p> | |||
<div style="float: left;"> | |||
<a href="part6.html">Photographic mosaics <<<</a> | |||
</div> | |||
<div style="float: right;"> | |||
<a href="source.html">>>> Source code</a> | |||
</div> | |||
<div style="text-align: center;"> | |||
<a href="index.html">^^^ Index</a> | |||
</div> | |||
<h2> Bibliography </h2> | |||
<ul> | |||
<li> [1] Victor Ostromoukhov. <i>A Simple and Efficient Error-Diffusion | |||
Algorithm</i>. In Proceedings of SIGGRAPH 2001, in ACM Computer Graphics, | |||
Annual Conference Series, pp. 567–572, 2001 </li> | |||
<li> [2] Jamie Hutchinson. <i>Culture, Communication, and an Information Age | |||
Madonna</i>. IEEE Professional Communication Society Newsletter, Volume 45, | |||
Number 3, pp. 1, 5–7, 2001 </li> | |||
<li> [3] V. Ostromoukhov, <i>Reproduction couleur par trames irrégulières | |||
et semi-régulières</i>, Ph.D. Thesis No.1330, EPFL, Lausanne, Switzerland, | |||
1995 </li> | |||
<li> [4] J. Allebach and Q. Lin, <i>FM screen design using DBS algorithm</i>, | |||
in Proc. IEEE International Conference on Image Processing (ICIP ’96), vol. | |||
1, pp. 549–552, Lausanne, Switzerland, September 1996 </li> | |||
<li> [5] R.W. Floyd, L. Steinberg, <i>An adaptive algorithm for spatial grey | |||
scale</i>. Proceedings of the Society of Information Display 17, 75–77 | |||
(1976) </li> | |||
<li> [6] P. Stucki, <i>MECCA - a multiple error correcting computation | |||
algorithm for bi-level image hard copy reproduction</i>. Research report | |||
RZ1060, IBM Research Laboratory, Zurich, Switzerland, 1981 </li> | |||
<li> [7] J. F. Jarvis, C. N. Judice and W. H. Ninke, <i>A Survey of | |||
Techniques for the Display of Continuous Tone Pictures on Bi-level | |||
Displays</i>. Computer Graphics and Image Processing, 5 13–40, 1976 </li> | |||
<li> [8] J. Shiau and Z. Fan, <i>Method for Quantization Gray Level Pixel | |||
Data with Extended Distribution Set</i>, U.S. patent 5,353,127, 1994 </li> | |||
<li> [9] R. Silvers. <i>Digital composition of a mosaic image</i>, U.S. | |||
patent 6,137,498, Oct. 2000 </li> | |||
<li> [10] Daniel Burkes, <i>Presentation of the Burkes error filter for use | |||
in preparing continuous-tone images for presentation on bi-level devices</i>, | |||
in LIB 15 (Publications), CIS Graphics Support Forum, September 15, 1988 | |||
(unpublished) </li> | |||
<li> [11] Frankie Sierra, in LIB 17 (Developer’s Den), CIS Graphics Support | |||
Forum (unpublished) </li> | |||
<li> [12] Bill Atkinson, private correspondence with John Balestrieri, | |||
January 2003 (unpublished) </li> | |||
<li> [13] Robert Ulichney, <i>Digital Halftoning</i>, The MIT Press, | |||
Cambridge, Mass. (1987) </li> | |||
<li> [14] D.E. Knuth, <i>Digital Halftones by Dot Diffusion</i>, ACM | |||
Transcripts on Graphics, 6(4), 1987, 245-273 </li> | |||
<li> [15] T.C. Chan, K.S. Chen (Apple Computer, Inc.), <i>Method and system | |||
for halftoning by tiling subsets of a threshold array over portions of an | |||
image</i>, U.S. patent 5,761,347, 1998 </li> | |||
<li> [16] Éric Brasseur, <i>Gamma error in picture scaling</i>, World Wide | |||
Web, <code>http://www.4p8.com/eric.brasseur/gamma.html</code>, August 2007 | |||
</li> | |||
<li> [17] B. Bayer, <i>Color imaging array</i>, in U.S. patent 3,971,065, | |||
1976 </li> | |||
<li> [18] R.A. Ulichney (Digital Equipment Corporation), <i>Void and cluster | |||
apparatus and method for generating dither templates</i>, in U.S. patent | |||
5,535,020, 1992 </li> | |||
<li> [19] H. Ancin, A. Bhattacharjya and J. Shu (Seiko Epson Corporation), | |||
<i>Void-and-cluster dither-matrix generation for better half-tone | |||
uniformity</i>, in U.S. patent 6,088,512, 1997 </li> | |||
<li> [20] J.S. Arney, P.G. Anderson, S. Ganawan, <i>Error Diffusion and | |||
Edge Enhancement: Raster Versus Omni-Directional Processing</i>, Western NY | |||
Conference on Image Processing, Rochester, NY, September 9, 2001 </li> | |||
<li> [21] Robert Ulichney, <i>Spatial Extent of Void and Cluster Finding | |||
Filters</i>, IS&T’s 11th International Congress on Non-Impact Printing | |||
Technologies, Oct. 29-Nov 3, 1995 </li> | |||
<li> [22] Alejo Hausner, <i>Graph-order dithering</i>, proceedings of SPIE -- | |||
Volume 6058 Color Imaging XI, 1996 </li> | |||
<li> [23] N. Damera-Venkata, B.L. Evans, <i> FM halftoning via block error | |||
diffusion</i>, proceedings of the 2001 International Conference on Image | |||
Processing, 2001 </li> | |||
<li> [24] R.V. Klassen, R. Eschbach, and K. Bharat, <i>Vector diffusion | |||
in a distorted colour space</i>, proceedings of IS&T’s 47th Annual | |||
Conference, 1994, pp. 489–491 </li> | |||
<li> [25] D. Shaked, N. Arad, A. Fitzhugh, and I. Sobel, <i>Ink relocation | |||
for color halftones</i>, proceedings of IS&T Image Processing, Image | |||
Quality, Image Capture Systems Conference, Portland, OR, 1998, pp. 340–343 | |||
</li> | |||
<li> [26] T. Riemersma, <i>A Balanced Dither Algorithm</i>, C/C++ Users | |||
Journal, volume 16, issue 12, December 1998 </li> | |||
</ul> | |||
<div style="float: left;"> | |||
<a href="part6.html">Photographic mosaics <<<</a> | |||
</div> | |||
<div style="float: right;"> | |||
<a href="source.html">>>> Source code</a> | |||
</div> | |||
<div style="text-align: center;"> | |||
<a href="index.html">^^^ Index</a> | |||
</div> | |||
<?php $rev = '$Id$'; | |||
include($_SERVER['DOCUMENT_ROOT'].'/footer.inc'); ?> | |||
</body> | |||
</html> |
@@ -0,0 +1,222 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |||
<svg | |||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||
xmlns:cc="http://web.resource.org/cc/" | |||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||
xmlns:svg="http://www.w3.org/2000/svg" | |||
xmlns="http://www.w3.org/2000/svg" | |||
xmlns:xlink="http://www.w3.org/1999/xlink" | |||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||
width="256" | |||
height="256" | |||
id="svg5471" | |||
sodipodi:version="0.32" | |||
inkscape:version="0.45.1" | |||
version="1.0" | |||
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study" | |||
sodipodi:docname="fig1-2-1.svg" | |||
inkscape:output_extension="org.inkscape.output.svg.inkscape" | |||
inkscape:export-filename="fig1-2-1.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90"> | |||
<defs | |||
id="defs5473"> | |||
<linearGradient | |||
id="linearGradient3404"> | |||
<stop | |||
style="stop-color:#000000;stop-opacity:1;" | |||
offset="0" | |||
id="stop3406" /> | |||
<stop | |||
style="stop-color:#ffffff;stop-opacity:1;" | |||
offset="1" | |||
id="stop3408" /> | |||
</linearGradient> | |||
<marker | |||
inkscape:stockid="Arrow1Send" | |||
orient="auto" | |||
refY="0" | |||
refX="0" | |||
id="Arrow1Send" | |||
style="overflow:visible"> | |||
<path | |||
id="path4296" | |||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " | |||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" | |||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | |||
</marker> | |||
</defs> | |||
<sodipodi:namedview | |||
id="base" | |||
pagecolor="#ffffff" | |||
bordercolor="#666666" | |||
borderopacity="1.0" | |||
gridtolerance="10000" | |||
guidetolerance="10" | |||
objecttolerance="10" | |||
inkscape:pageopacity="0.0" | |||
inkscape:pageshadow="2" | |||
inkscape:zoom="1.6337563" | |||
inkscape:cx="188.4865" | |||
inkscape:cy="139.54181" | |||
inkscape:document-units="px" | |||
inkscape:current-layer="layer1" | |||
width="256px" | |||
height="256px" | |||
showgrid="true" | |||
gridempspacing="8" | |||
inkscape:window-width="1400" | |||
inkscape:window-height="1007" | |||
inkscape:window-x="0" | |||
inkscape:window-y="0" | |||
inkscape:grid-points="true" /> | |||
<metadata | |||
id="metadata5476"> | |||
<rdf:RDF> | |||
<cc:Work | |||
rdf:about=""> | |||
<dc:format>image/svg+xml</dc:format> | |||
<dc:type | |||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||
</cc:Work> | |||
</rdf:RDF> | |||
</metadata> | |||
<g | |||
inkscape:label="Layer 1" | |||
inkscape:groupmode="layer" | |||
id="layer1"> | |||
<path | |||
style="color:#00ffff;fill:none;stroke:#00d105;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||
d="M 41,215 L 232,24" | |||
id="path2325" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
sodipodi:nodetypes="cc" | |||
id="path3245" | |||
d="M 40,214 L 104,214" | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||
<image | |||
xlink:href="gradient256bw.png" | |||
sodipodi:absref="gradient256bw.png" | |||
width="24" | |||
height="192" | |||
id="image3412" | |||
x="16" | |||
y="24" /> | |||
<image | |||
xlink:href="grad1-2-1.png" | |||
sodipodi:absref="grad1-2-1.png" | |||
width="24" | |||
height="192" | |||
id="image3368" | |||
x="216" | |||
y="-232" | |||
transform="matrix(0,1,-1,0,0,0)" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
d="M 36,72 L 44,72" | |||
id="path2377" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
d="M 232,220 L 232,212" | |||
id="path3259" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:#000000;stroke-width:1.00003266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||
d="M 40,16 L 40,216 L 240,216" | |||
id="path136" | |||
sodipodi:nodetypes="ccc" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" /> | |||
<path | |||
id="path3212" | |||
d="M 36,120 L 44,120" | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
d="M 88,220 L 88,212" | |||
id="path3218" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
id="path3220" | |||
d="M 136,220 L 136,212" | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
d="M 184,220 L 184,212" | |||
id="path3222" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
id="path3256" | |||
d="M 36,24 L 44,24" | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
inkscape:export-ydpi="90" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-filename="path4482.png" | |||
id="path3240" | |||
d="M 36,168 L 44,168" | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||
d="M 104,120 L 168,120" | |||
id="path3249" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
sodipodi:nodetypes="cc" | |||
id="path3251" | |||
d="M 168,24 L 232,24" | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||
<path | |||
sodipodi:nodetypes="cc" | |||
id="path3253" | |||
d="M 104,120 L 104,216" | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<path | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" | |||
d="M 168,24 L 168,120" | |||
id="path3255" | |||
sodipodi:nodetypes="cc" /> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="129.79779" | |||
y="163.31921" | |||
id="text2187" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan2189" | |||
x="129.79779" | |||
y="163.31921">mean error: 0.139</tspan><tspan | |||
sodipodi:role="line" | |||
x="129.79779" | |||
y="178.31921" | |||
id="tspan2191">max error: 0.333</tspan></text> | |||
</g> | |||
</svg> |
@@ -0,0 +1,242 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |||
<svg | |||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||
xmlns:cc="http://web.resource.org/cc/" | |||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||
xmlns:svg="http://www.w3.org/2000/svg" | |||
xmlns="http://www.w3.org/2000/svg" | |||
xmlns:xlink="http://www.w3.org/1999/xlink" | |||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||
width="256" | |||
height="256" | |||
id="svg5471" | |||
sodipodi:version="0.32" | |||
inkscape:version="0.45.1" | |||
version="1.0" | |||
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study" | |||
sodipodi:docname="fig1-2-2.svg" | |||
inkscape:output_extension="org.inkscape.output.svg.inkscape" | |||
inkscape:export-filename="fig1-2-2.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90"> | |||
<defs | |||
id="defs5473"> | |||
<linearGradient | |||
id="linearGradient3404"> | |||
<stop | |||
style="stop-color:#000000;stop-opacity:1;" | |||
offset="0" | |||
id="stop3406" /> | |||
<stop | |||
style="stop-color:#ffffff;stop-opacity:1;" | |||
offset="1" | |||
id="stop3408" /> | |||
</linearGradient> | |||
<marker | |||
inkscape:stockid="Arrow1Send" | |||
orient="auto" | |||
refY="0" | |||
refX="0" | |||
id="Arrow1Send" | |||
style="overflow:visible"> | |||
<path | |||
id="path4296" | |||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " | |||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" | |||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | |||
</marker> | |||
</defs> | |||
<sodipodi:namedview | |||
id="base" | |||
pagecolor="#ffffff" | |||
bordercolor="#666666" | |||
borderopacity="1.0" | |||
gridtolerance="10000" | |||
guidetolerance="10" | |||
objecttolerance="10" | |||
inkscape:pageopacity="0.0" | |||
inkscape:pageshadow="2" | |||
inkscape:zoom="2.3104803" | |||
inkscape:cx="130.61435" | |||
inkscape:cy="123.6191" | |||
inkscape:document-units="px" | |||
inkscape:current-layer="layer1" | |||
width="256px" | |||
height="256px" | |||
showgrid="true" | |||
gridempspacing="8" | |||
inkscape:window-width="1400" | |||
inkscape:window-height="1007" | |||
inkscape:window-x="0" | |||
inkscape:window-y="0" | |||
inkscape:grid-points="true" /> | |||
<metadata | |||
id="metadata5476"> | |||
<rdf:RDF> | |||
<cc:Work | |||
rdf:about=""> | |||
<dc:format>image/svg+xml</dc:format> | |||
<dc:type | |||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||
</cc:Work> | |||
</rdf:RDF> | |||
</metadata> | |||
<g | |||
inkscape:label="Layer 1" | |||
inkscape:groupmode="layer" | |||
id="layer1"> | |||
<path | |||
style="color:#00ffff;fill:none;stroke:#00d105;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||
d="M 41,215 L 232,24" | |||
id="path2325" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
sodipodi:nodetypes="cc" | |||
id="path3245" | |||
d="M 40,214 L 79,214" | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||
<image | |||
xlink:href="gradient256bw.png" | |||
sodipodi:absref="gradient256bw.png" | |||
width="24" | |||
height="192" | |||
id="image3412" | |||
x="16" | |||
y="24" /> | |||
<image | |||
xlink:href="grad1-2-2.png" | |||
sodipodi:absref="grad1-2-2.png" | |||
width="24" | |||
height="192" | |||
id="image3368" | |||
x="216" | |||
y="-232" | |||
transform="matrix(0,1,-1,0,0,0)" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
d="M 36,72 L 44,72" | |||
id="path2377" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
d="M 232,220 L 232,212" | |||
id="path3259" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:#000000;stroke-width:1.00003266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||
d="M 40,16 L 40,216 L 240,216" | |||
id="path136" | |||
sodipodi:nodetypes="ccc" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" /> | |||
<path | |||
id="path3212" | |||
d="M 36,120 L 44,120" | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
d="M 88,220 L 88,212" | |||
id="path3218" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
id="path3220" | |||
d="M 136,220 L 136,212" | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
d="M 184,220 L 184,212" | |||
id="path3222" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
id="path3256" | |||
d="M 36,24 L 44,24" | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
inkscape:export-ydpi="90" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-filename="path4482.png" | |||
id="path3240" | |||
d="M 36,168 L 44,168" | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||
d="M 79,168 L 117,168" | |||
id="path3249" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
sodipodi:nodetypes="cc" | |||
id="path3251" | |||
d="M 194,24 L 232,24" | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||
<path | |||
sodipodi:nodetypes="cc" | |||
id="path3253" | |||
d="M 79,168 L 79,214" | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<path | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" | |||
d="M 155,72 L 155,120" | |||
id="path3255" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
sodipodi:nodetypes="cc" | |||
id="path2179" | |||
d="M 117,120 L 155,120" | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||
<path | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" | |||
d="M 117,120 L 117,168" | |||
id="path2181" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||
d="M 155,72 L 194,72" | |||
id="path2183" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
sodipodi:nodetypes="cc" | |||
id="path2185" | |||
d="M 194,24 L 194,72" | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="135.79778" | |||
y="169.31921" | |||
id="text2187" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan2189" | |||
x="135.79778" | |||
y="169.31921">mean error: 0.075</tspan><tspan | |||
sodipodi:role="line" | |||
x="135.79778" | |||
y="184.31921" | |||
id="tspan2191">max error: 0.2</tspan></text> | |||
</g> | |||
</svg> |
@@ -0,0 +1,222 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |||
<svg | |||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||
xmlns:cc="http://web.resource.org/cc/" | |||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||
xmlns:svg="http://www.w3.org/2000/svg" | |||
xmlns="http://www.w3.org/2000/svg" | |||
xmlns:xlink="http://www.w3.org/1999/xlink" | |||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||
width="256" | |||
height="256" | |||
id="svg5471" | |||
sodipodi:version="0.32" | |||
inkscape:version="0.45.1" | |||
version="1.0" | |||
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study" | |||
sodipodi:docname="fig1-2-3.svg" | |||
inkscape:output_extension="org.inkscape.output.svg.inkscape" | |||
inkscape:export-filename="fig1-2-3.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90"> | |||
<defs | |||
id="defs5473"> | |||
<linearGradient | |||
id="linearGradient3404"> | |||
<stop | |||
style="stop-color:#000000;stop-opacity:1;" | |||
offset="0" | |||
id="stop3406" /> | |||
<stop | |||
style="stop-color:#ffffff;stop-opacity:1;" | |||
offset="1" | |||
id="stop3408" /> | |||
</linearGradient> | |||
<marker | |||
inkscape:stockid="Arrow1Send" | |||
orient="auto" | |||
refY="0" | |||
refX="0" | |||
id="Arrow1Send" | |||
style="overflow:visible"> | |||
<path | |||
id="path4296" | |||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " | |||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" | |||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | |||
</marker> | |||
</defs> | |||
<sodipodi:namedview | |||
id="base" | |||
pagecolor="#ffffff" | |||
bordercolor="#666666" | |||
borderopacity="1.0" | |||
gridtolerance="10000" | |||
guidetolerance="10" | |||
objecttolerance="10" | |||
inkscape:pageopacity="0.0" | |||
inkscape:pageshadow="2" | |||
inkscape:zoom="2.3104803" | |||
inkscape:cx="105.41566" | |||
inkscape:cy="106.16408" | |||
inkscape:document-units="px" | |||
inkscape:current-layer="layer1" | |||
width="256px" | |||
height="256px" | |||
showgrid="true" | |||
gridempspacing="8" | |||
inkscape:window-width="1400" | |||
inkscape:window-height="1007" | |||
inkscape:window-x="0" | |||
inkscape:window-y="0" | |||
inkscape:grid-points="true" /> | |||
<metadata | |||
id="metadata5476"> | |||
<rdf:RDF> | |||
<cc:Work | |||
rdf:about=""> | |||
<dc:format>image/svg+xml</dc:format> | |||
<dc:type | |||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||
</cc:Work> | |||
</rdf:RDF> | |||
</metadata> | |||
<g | |||
inkscape:label="Layer 1" | |||
inkscape:groupmode="layer" | |||
id="layer1"> | |||
<path | |||
style="color:#00ffff;fill:none;stroke:#00d105;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||
d="M 41,215 L 232,24" | |||
id="path2325" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
sodipodi:nodetypes="cc" | |||
id="path3245" | |||
d="M 40,214 L 88,214" | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||
<image | |||
xlink:href="gradient256bw.png" | |||
sodipodi:absref="gradient256bw.png" | |||
width="24" | |||
height="192" | |||
id="image3412" | |||
x="16" | |||
y="24" /> | |||
<image | |||
xlink:href="grad1-2-3.png" | |||
sodipodi:absref="grad1-2-3.png" | |||
width="24" | |||
height="192" | |||
id="image3368" | |||
x="216" | |||
y="-232" | |||
transform="matrix(0,1,-1,0,0,0)" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
d="M 36,72 L 44,72" | |||
id="path2377" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
d="M 232,220 L 232,212" | |||
id="path3259" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:#000000;stroke-width:1.00003266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||
d="M 40,16 L 40,216 L 240,216" | |||
id="path136" | |||
sodipodi:nodetypes="ccc" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" /> | |||
<path | |||
id="path3212" | |||
d="M 36,120 L 44,120" | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
d="M 88,220 L 88,212" | |||
id="path3218" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
id="path3220" | |||
d="M 136,220 L 136,212" | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
d="M 184,220 L 184,212" | |||
id="path3222" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
id="path3256" | |||
d="M 36,24 L 44,24" | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
inkscape:export-ydpi="90" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-filename="path4482.png" | |||
id="path3240" | |||
d="M 36,168 L 44,168" | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||
d="M 88,120 L 184,120" | |||
id="path3249" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
sodipodi:nodetypes="cc" | |||
id="path3251" | |||
d="M 184,24 L 232,24" | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||
<path | |||
sodipodi:nodetypes="cc" | |||
id="path3253" | |||
d="M 88,120 L 88,214" | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<path | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" | |||
d="M 184,24 L 184,120" | |||
id="path3255" | |||
sodipodi:nodetypes="cc" /> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="129.79779" | |||
y="163.31921" | |||
id="text2187" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan2189" | |||
x="129.79779" | |||
y="163.31921">mean error: 0.125</tspan><tspan | |||
sodipodi:role="line" | |||
x="129.79779" | |||
y="178.31921" | |||
id="tspan2191">max error: 0.25</tspan></text> | |||
</g> | |||
</svg> |
@@ -0,0 +1,242 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |||
<svg | |||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||
xmlns:cc="http://web.resource.org/cc/" | |||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||
xmlns:svg="http://www.w3.org/2000/svg" | |||
xmlns="http://www.w3.org/2000/svg" | |||
xmlns:xlink="http://www.w3.org/1999/xlink" | |||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||
width="256" | |||
height="256" | |||
id="svg5471" | |||
sodipodi:version="0.32" | |||
inkscape:version="0.45.1" | |||
version="1.0" | |||
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study" | |||
sodipodi:docname="fig1-2-4.svg" | |||
inkscape:output_extension="org.inkscape.output.svg.inkscape" | |||
inkscape:export-filename="fig1-2-4.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90"> | |||
<defs | |||
id="defs5473"> | |||
<linearGradient | |||
id="linearGradient3404"> | |||
<stop | |||
style="stop-color:#000000;stop-opacity:1;" | |||
offset="0" | |||
id="stop3406" /> | |||
<stop | |||
style="stop-color:#ffffff;stop-opacity:1;" | |||
offset="1" | |||
id="stop3408" /> | |||
</linearGradient> | |||
<marker | |||
inkscape:stockid="Arrow1Send" | |||
orient="auto" | |||
refY="0" | |||
refX="0" | |||
id="Arrow1Send" | |||
style="overflow:visible"> | |||
<path | |||
id="path4296" | |||
d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " | |||
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" | |||
transform="matrix(-0.2,0,0,-0.2,-1.2,0)" /> | |||
</marker> | |||
</defs> | |||
<sodipodi:namedview | |||
id="base" | |||
pagecolor="#ffffff" | |||
bordercolor="#666666" | |||
borderopacity="1.0" | |||
gridtolerance="10000" | |||
guidetolerance="10" | |||
objecttolerance="10" | |||
inkscape:pageopacity="0.0" | |||
inkscape:pageshadow="2" | |||
inkscape:zoom="2.3104803" | |||
inkscape:cx="143.13828" | |||
inkscape:cy="152.07584" | |||
inkscape:document-units="px" | |||
inkscape:current-layer="layer1" | |||
width="256px" | |||
height="256px" | |||
showgrid="true" | |||
gridempspacing="8" | |||
inkscape:window-width="1400" | |||
inkscape:window-height="1007" | |||
inkscape:window-x="0" | |||
inkscape:window-y="0" | |||
inkscape:grid-points="true" /> | |||
<metadata | |||
id="metadata5476"> | |||
<rdf:RDF> | |||
<cc:Work | |||
rdf:about=""> | |||
<dc:format>image/svg+xml</dc:format> | |||
<dc:type | |||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||
</cc:Work> | |||
</rdf:RDF> | |||
</metadata> | |||
<g | |||
inkscape:label="Layer 1" | |||
inkscape:groupmode="layer" | |||
id="layer1"> | |||
<path | |||
style="color:#00ffff;fill:none;stroke:#00d105;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||
d="M 41,215 L 232,24" | |||
id="path2325" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
sodipodi:nodetypes="cc" | |||
id="path3245" | |||
d="M 40,214 L 64,214" | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||
<image | |||
xlink:href="gradient256bw.png" | |||
sodipodi:absref="gradient256bw.png" | |||
width="24" | |||
height="192" | |||
id="image3412" | |||
x="16" | |||
y="24" /> | |||
<image | |||
xlink:href="grad1-2-4.png" | |||
sodipodi:absref="grad1-2-4.png" | |||
width="24" | |||
height="192" | |||
id="image3368" | |||
x="216" | |||
y="-232" | |||
transform="matrix(0,1,-1,0,0,0)" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
d="M 36,72 L 44,72" | |||
id="path2377" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
d="M 232,220 L 232,212" | |||
id="path3259" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:#000000;stroke-width:1.00003266;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||
d="M 40,16 L 40,216 L 240,216" | |||
id="path136" | |||
sodipodi:nodetypes="ccc" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" /> | |||
<path | |||
id="path3212" | |||
d="M 36,120 L 44,120" | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
d="M 88,220 L 88,212" | |||
id="path3218" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
id="path3220" | |||
d="M 136,220 L 136,212" | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:0.97401375;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
d="M 184,220 L 184,212" | |||
id="path3222" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
id="path3256" | |||
d="M 36,24 L 44,24" | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
inkscape:export-filename="path4482.png" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-ydpi="90" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
inkscape:export-ydpi="90" | |||
inkscape:export-xdpi="90" | |||
inkscape:export-filename="path4482.png" | |||
id="path3240" | |||
d="M 36,168 L 44,168" | |||
style="color:#000000;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||
d="M 64,168 L 112,168" | |||
id="path3249" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
sodipodi:nodetypes="cc" | |||
id="path3251" | |||
d="M 208,24 L 232,24" | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||
<path | |||
sodipodi:nodetypes="cc" | |||
id="path3253" | |||
d="M 64,168 L 64,214" | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<path | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" | |||
d="M 160,72 L 160,120" | |||
id="path3255" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
sodipodi:nodetypes="cc" | |||
id="path2179" | |||
d="M 112,120 L 160,120" | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> | |||
<path | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" | |||
d="M 112,120 L 112,168" | |||
id="path2181" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:3.00009823;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | |||
d="M 160,72 L 208,72" | |||
id="path2183" | |||
sodipodi:nodetypes="cc" /> | |||
<path | |||
sodipodi:nodetypes="cc" | |||
id="path2185" | |||
d="M 208,24 L 208,72" | |||
style="color:#00ffff;fill:none;stroke:#ff0000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:6, 6;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="135.79778" | |||
y="169.31921" | |||
id="text2187" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan2189" | |||
x="135.79778" | |||
y="169.31921">mean error: 0.0625</tspan><tspan | |||
sodipodi:role="line" | |||
x="135.79778" | |||
y="184.31921" | |||
id="tspan2191">max error: 0.125</tspan></text> | |||
</g> | |||
</svg> |
@@ -0,0 +1,120 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |||
<svg | |||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||
xmlns:cc="http://web.resource.org/cc/" | |||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||
xmlns:svg="http://www.w3.org/2000/svg" | |||
xmlns="http://www.w3.org/2000/svg" | |||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||
width="744.09448819" | |||
height="1052.3622047" | |||
id="svg2" | |||
sodipodi:version="0.32" | |||
inkscape:version="0.45.1" | |||
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study" | |||
sodipodi:docname="fig2-3-1.svg" | |||
inkscape:output_extension="org.inkscape.output.svg.inkscape" | |||
inkscape:export-filename="fig2-3-1.png" | |||
inkscape:export-xdpi="60" | |||
inkscape:export-ydpi="60"> | |||
<defs | |||
id="defs4" /> | |||
<sodipodi:namedview | |||
id="base" | |||
pagecolor="#ffffff" | |||
bordercolor="#666666" | |||
borderopacity="1.0" | |||
gridtolerance="10000" | |||
guidetolerance="10" | |||
objecttolerance="10" | |||
inkscape:pageopacity="0.0" | |||
inkscape:pageshadow="2" | |||
inkscape:zoom="2.8" | |||
inkscape:cx="101.33764" | |||
inkscape:cy="1016.8391" | |||
inkscape:document-units="px" | |||
inkscape:current-layer="layer1" | |||
showgrid="true" | |||
inkscape:window-width="1075" | |||
inkscape:window-height="847" | |||
inkscape:window-x="0" | |||
inkscape:window-y="0" | |||
inkscape:grid-points="true" /> | |||
<metadata | |||
id="metadata7"> | |||
<rdf:RDF> | |||
<cc:Work | |||
rdf:about=""> | |||
<dc:format>image/svg+xml</dc:format> | |||
<dc:type | |||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||
</cc:Work> | |||
</rdf:RDF> | |||
</metadata> | |||
<g | |||
inkscape:label="Layer 1" | |||
inkscape:groupmode="layer" | |||
id="layer1"> | |||
<rect | |||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||
id="rect2160" | |||
width="118" | |||
height="118" | |||
x="6" | |||
y="8.3621826" | |||
inkscape:export-xdpi="60" | |||
inkscape:export-ydpi="60" | |||
inkscape:export-filename="fig2-3-1.png" /> | |||
<path | |||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||
d="M 7,67.36218 L 123,67.36218 M 65,9.36218 L 65,125.36218" | |||
id="rect4103" | |||
sodipodi:nodetypes="cccc" /> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="14.029541" | |||
y="47.447662" | |||
id="text4106" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan4108" | |||
x="14.029541" | |||
y="47.447662">0.2</tspan></text> | |||
<text | |||
sodipodi:linespacing="125%" | |||
id="text2167" | |||
y="107.44766" | |||
x="14.029541" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
xml:space="preserve"><tspan | |||
y="107.44766" | |||
x="14.029541" | |||
id="tspan2169" | |||
sodipodi:role="line">0.6</tspan></text> | |||
<text | |||
sodipodi:linespacing="125%" | |||
id="text2171" | |||
y="47.447662" | |||
x="74.029541" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
xml:space="preserve"><tspan | |||
y="47.447662" | |||
x="74.029541" | |||
id="tspan2173" | |||
sodipodi:role="line">0.8</tspan></text> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="74.029541" | |||
y="107.44766" | |||
id="text2175" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan2177" | |||
x="74.029541" | |||
y="107.44766">0.4</tspan></text> | |||
</g> | |||
</svg> |
@@ -0,0 +1,360 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |||
<svg | |||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||
xmlns:cc="http://web.resource.org/cc/" | |||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||
xmlns:svg="http://www.w3.org/2000/svg" | |||
xmlns="http://www.w3.org/2000/svg" | |||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||
width="744.09448819" | |||
height="1052.3622047" | |||
id="svg2" | |||
sodipodi:version="0.32" | |||
inkscape:version="0.45.1" | |||
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study" | |||
sodipodi:docname="fig2-3-1b.svg" | |||
inkscape:output_extension="org.inkscape.output.svg.inkscape" | |||
inkscape:export-filename="fig2-3-1b.png" | |||
inkscape:export-xdpi="60" | |||
inkscape:export-ydpi="60"> | |||
<defs | |||
id="defs4" /> | |||
<sodipodi:namedview | |||
id="base" | |||
pagecolor="#ffffff" | |||
bordercolor="#666666" | |||
borderopacity="1.0" | |||
gridtolerance="10000" | |||
guidetolerance="10" | |||
objecttolerance="10" | |||
inkscape:pageopacity="0.0" | |||
inkscape:pageshadow="2" | |||
inkscape:zoom="1.4" | |||
inkscape:cx="168.37462" | |||
inkscape:cy="891.07511" | |||
inkscape:document-units="px" | |||
inkscape:current-layer="layer1" | |||
showgrid="true" | |||
inkscape:window-width="1075" | |||
inkscape:window-height="847" | |||
inkscape:window-x="0" | |||
inkscape:window-y="0" | |||
inkscape:grid-points="true" /> | |||
<metadata | |||
id="metadata7"> | |||
<rdf:RDF> | |||
<cc:Work | |||
rdf:about=""> | |||
<dc:format>image/svg+xml</dc:format> | |||
<dc:type | |||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||
</cc:Work> | |||
</rdf:RDF> | |||
</metadata> | |||
<g | |||
inkscape:label="Layer 1" | |||
inkscape:groupmode="layer" | |||
id="layer1"> | |||
<path | |||
sodipodi:nodetypes="ccccc" | |||
id="path3287" | |||
d="M 6,8.3621826 L 362,8.3621826 L 362,244.36218 L 6,244.36218 L 6,8.3621826 z " | |||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<path | |||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" | |||
d="M 6,246.36218 L 6,8.3621826 L 364,8.3621826" | |||
id="rect2160" | |||
sodipodi:nodetypes="ccc" /> | |||
<path | |||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||
d="M 7,67.36218 L 363,67.36218 M 65,9.36218 L 65,245.36218" | |||
id="rect4103" | |||
sodipodi:nodetypes="cccc" /> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="14.029541" | |||
y="47.447662" | |||
id="text4106" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan4108" | |||
x="14.029541" | |||
y="47.447662">0.2</tspan></text> | |||
<text | |||
sodipodi:linespacing="125%" | |||
id="text2167" | |||
y="107.44766" | |||
x="14.029541" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
xml:space="preserve"><tspan | |||
y="107.44766" | |||
x="14.029541" | |||
id="tspan2169" | |||
sodipodi:role="line">0.6</tspan></text> | |||
<text | |||
sodipodi:linespacing="125%" | |||
id="text2171" | |||
y="47.447662" | |||
x="74.029541" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
xml:space="preserve"><tspan | |||
y="47.447662" | |||
x="74.029541" | |||
id="tspan2173" | |||
sodipodi:role="line">0.8</tspan></text> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="74.029541" | |||
y="107.44766" | |||
id="text2175" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan2177" | |||
x="74.029541" | |||
y="107.44766">0.4</tspan></text> | |||
<path | |||
sodipodi:nodetypes="cccc" | |||
id="path2168" | |||
d="M 7,127.36218 L 363,127.36218 M 125,9.36218 L 125,245.36218" | |||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<path | |||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||
d="M 7,187.36218 L 363,187.36218 M 185,9.36218 L 185,245.36218" | |||
id="path2170" | |||
sodipodi:nodetypes="cccc" /> | |||
<path | |||
sodipodi:nodetypes="cc" | |||
id="path2172" | |||
d="M 245,9.36218 L 245,245.36218" | |||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<text | |||
sodipodi:linespacing="125%" | |||
id="text2174" | |||
y="47.447662" | |||
x="134.02954" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
xml:space="preserve"><tspan | |||
y="47.447662" | |||
x="134.02954" | |||
id="tspan2176" | |||
sodipodi:role="line">0.2</tspan></text> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="134.02954" | |||
y="107.44766" | |||
id="text2178" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan2180" | |||
x="134.02954" | |||
y="107.44766">0.6</tspan></text> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="194.02954" | |||
y="47.447662" | |||
id="text2182" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan2184" | |||
x="194.02954" | |||
y="47.447662">0.8</tspan></text> | |||
<text | |||
sodipodi:linespacing="125%" | |||
id="text2186" | |||
y="107.44766" | |||
x="194.02954" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
xml:space="preserve"><tspan | |||
y="107.44766" | |||
x="194.02954" | |||
id="tspan2188" | |||
sodipodi:role="line">0.4</tspan></text> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="134.02954" | |||
y="167.44766" | |||
id="text2190" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan2192" | |||
x="134.02954" | |||
y="167.44766">0.2</tspan></text> | |||
<text | |||
sodipodi:linespacing="125%" | |||
id="text2194" | |||
y="227.44766" | |||
x="134.02954" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
xml:space="preserve"><tspan | |||
y="227.44766" | |||
x="134.02954" | |||
id="tspan2196" | |||
sodipodi:role="line">0.6</tspan></text> | |||
<text | |||
sodipodi:linespacing="125%" | |||
id="text2198" | |||
y="167.44766" | |||
x="194.02954" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
xml:space="preserve"><tspan | |||
y="167.44766" | |||
x="194.02954" | |||
id="tspan2200" | |||
sodipodi:role="line">0.8</tspan></text> | |||
<text | |||
sodipodi:linespacing="125%" | |||
id="text2206" | |||
y="167.44766" | |||
x="14.029541" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
xml:space="preserve"><tspan | |||
y="167.44766" | |||
x="14.029541" | |||
id="tspan2208" | |||
sodipodi:role="line">0.2</tspan></text> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="14.029541" | |||
y="227.44766" | |||
id="text2210" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan2212" | |||
x="14.029541" | |||
y="227.44766">0.6</tspan></text> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="74.029541" | |||
y="167.44766" | |||
id="text2214" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan2216" | |||
x="74.029541" | |||
y="167.44766">0.8</tspan></text> | |||
<text | |||
sodipodi:linespacing="125%" | |||
id="text2218" | |||
y="227.44766" | |||
x="74.029541" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
xml:space="preserve"><tspan | |||
y="227.44766" | |||
x="74.029541" | |||
id="tspan2220" | |||
sodipodi:role="line">0.4</tspan></text> | |||
<text | |||
sodipodi:linespacing="125%" | |||
id="text2270" | |||
y="167.44766" | |||
x="254.02954" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
xml:space="preserve"><tspan | |||
y="167.44766" | |||
x="254.02954" | |||
id="tspan2272" | |||
sodipodi:role="line">0.2</tspan></text> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="274.02954" | |||
y="221.44766" | |||
id="text2274" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan2276" | |||
x="274.02954" | |||
y="221.44766">...</tspan></text> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="254.02954" | |||
y="47.447662" | |||
id="text2286" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan2288" | |||
x="254.02954" | |||
y="47.447662">0.2</tspan></text> | |||
<text | |||
sodipodi:linespacing="125%" | |||
id="text2290" | |||
y="107.44766" | |||
x="254.02954" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
xml:space="preserve"><tspan | |||
y="107.44766" | |||
x="254.02954" | |||
id="tspan2292" | |||
sodipodi:role="line">0.6</tspan></text> | |||
<path | |||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||
d="M 305,9.36218 L 305,245.36218" | |||
id="path2213" | |||
sodipodi:nodetypes="cc" /> | |||
<text | |||
sodipodi:linespacing="125%" | |||
id="text2215" | |||
y="47.447662" | |||
x="314.02954" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
xml:space="preserve"><tspan | |||
y="47.447662" | |||
x="314.02954" | |||
id="tspan2217" | |||
sodipodi:role="line">0.8</tspan></text> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="314.02954" | |||
y="107.44766" | |||
id="text2219" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan2221" | |||
x="314.02954" | |||
y="107.44766">0.4</tspan></text> | |||
<text | |||
sodipodi:linespacing="125%" | |||
id="text2212" | |||
y="221.44766" | |||
x="334.02954" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
xml:space="preserve"><tspan | |||
y="221.44766" | |||
x="334.02954" | |||
id="tspan2214" | |||
sodipodi:role="line">...</tspan></text> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="334.02954" | |||
y="161.44766" | |||
id="text2216" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan2218" | |||
x="334.02954" | |||
y="161.44766">...</tspan></text> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="214.02954" | |||
y="221.44766" | |||
id="text2220" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan2222" | |||
x="214.02954" | |||
y="221.44766">...</tspan></text> | |||
</g> | |||
</svg> |
@@ -0,0 +1,177 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |||
<svg | |||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||
xmlns:cc="http://web.resource.org/cc/" | |||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||
xmlns:svg="http://www.w3.org/2000/svg" | |||
xmlns="http://www.w3.org/2000/svg" | |||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||
width="744.09448819" | |||
height="1052.3622047" | |||
id="svg2" | |||
sodipodi:version="0.32" | |||
inkscape:version="0.45.1" | |||
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study" | |||
sodipodi:docname="fig2-3-1c.svg" | |||
inkscape:output_extension="org.inkscape.output.svg.inkscape" | |||
inkscape:export-filename="fig2-3-1c.png" | |||
inkscape:export-xdpi="60" | |||
inkscape:export-ydpi="60"> | |||
<defs | |||
id="defs4" /> | |||
<sodipodi:namedview | |||
id="base" | |||
pagecolor="#ffffff" | |||
bordercolor="#666666" | |||
borderopacity="1.0" | |||
gridtolerance="10000" | |||
guidetolerance="10" | |||
objecttolerance="10" | |||
inkscape:pageopacity="0.0" | |||
inkscape:pageshadow="2" | |||
inkscape:zoom="0.98994949" | |||
inkscape:cx="454.04411" | |||
inkscape:cy="1036.1848" | |||
inkscape:document-units="px" | |||
inkscape:current-layer="layer1" | |||
showgrid="true" | |||
inkscape:window-width="1075" | |||
inkscape:window-height="847" | |||
inkscape:window-x="0" | |||
inkscape:window-y="0" | |||
inkscape:grid-points="true" /> | |||
<metadata | |||
id="metadata7"> | |||
<rdf:RDF> | |||
<cc:Work | |||
rdf:about=""> | |||
<dc:format>image/svg+xml</dc:format> | |||
<dc:type | |||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||
</cc:Work> | |||
</rdf:RDF> | |||
</metadata> | |||
<g | |||
inkscape:label="Layer 1" | |||
inkscape:groupmode="layer" | |||
id="layer1"> | |||
<rect | |||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||
id="rect2160" | |||
width="118" | |||
height="118" | |||
x="91" | |||
y="13.362183" | |||
inkscape:export-xdpi="60" | |||
inkscape:export-ydpi="60" | |||
inkscape:export-filename="fig2-3-1c.png" /> | |||
<path | |||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||
d="M 92,72.36218 L 208,72.36218 M 150,14.36218 L 150,130.36218" | |||
id="rect4103" | |||
sodipodi:nodetypes="cccc" /> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:32;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="119.70291" | |||
y="52.362183" | |||
id="text4106" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan4108" | |||
x="119.70291" | |||
y="52.362183">0</tspan></text> | |||
<text | |||
sodipodi:linespacing="125%" | |||
id="text2167" | |||
y="52.362183" | |||
x="179.70291" | |||
style="font-size:32;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
xml:space="preserve"><tspan | |||
y="52.362183" | |||
x="179.70291" | |||
id="tspan2169" | |||
sodipodi:role="line">3</tspan></text> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:32;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="179.70291" | |||
y="112.36218" | |||
id="text2171" | |||
sodipodi:linespacing="125%"><tspan | |||
sodipodi:role="line" | |||
id="tspan2173" | |||
x="179.70291" | |||
y="112.36218">1</tspan></text> | |||
<text | |||
sodipodi:linespacing="125%" | |||
id="text2175" | |||
y="112.36218" | |||
x="119.70291" | |||
style="font-size:32;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
xml:space="preserve"><tspan | |||
y="112.36218" | |||
x="119.70291" | |||
id="tspan2177" | |||
sodipodi:role="line">2</tspan></text> | |||
<text | |||
sodipodi:linespacing="125%" | |||
id="text2168" | |||
y="82.362183" | |||
x="43.702911" | |||
style="font-size:26.42494583px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
xml:space="preserve"><tspan | |||
y="82.362183" | |||
x="43.702911" | |||
id="tspan2170" | |||
sodipodi:role="line" | |||
style="font-size:32px;font-style:italic">M =</tspan></text> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="287.70291" | |||
y="82.362183" | |||
id="text2182" | |||
sodipodi:linespacing="125%"><tspan | |||
style="font-size:32px;font-style:italic" | |||
sodipodi:role="line" | |||
id="tspan2184" | |||
x="287.70291" | |||
y="82.362183">d<tspan | |||
style="font-size:22px" | |||
id="tspan2186">i,j</tspan> =</tspan></text> | |||
<text | |||
sodipodi:linespacing="125%" | |||
id="text2204" | |||
y="62.362183" | |||
x="393.70291" | |||
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
xml:space="preserve"><tspan | |||
y="62.362183" | |||
x="393.70291" | |||
id="tspan2206" | |||
sodipodi:role="line" | |||
style="font-size:32px;font-style:italic">1+M<tspan | |||
id="tspan2208" | |||
style="font-size:22">i,j</tspan></tspan></text> | |||
<text | |||
xml:space="preserve" | |||
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif" | |||
x="393.70291" | |||
y="102.36218" | |||
id="text2210" | |||
sodipodi:linespacing="125%"><tspan | |||
style="font-size:32px;font-style:italic" | |||
sodipodi:role="line" | |||
id="tspan2212" | |||
x="393.70291" | |||
y="102.36218">1+m×n</tspan></text> | |||
<path | |||
sodipodi:nodetypes="cc" | |||
id="path2216" | |||
d="M 340,72.36218 L 452,72.36218" | |||
style="font-size:32px;fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||
</g> | |||
</svg> |
@@ -0,0 +1,200 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |||
<svg | |||
xmlns:dc="http://purl.org/dc/elements/1.1/" | |||
xmlns:cc="http://web.resource.org/cc/" | |||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" | |||
xmlns:svg="http://www.w3.org/2000/svg" | |||
xmlns="http://www.w3.org/2000/svg" | |||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||
width="744.09448819" | |||
height="1052.3622047" | |||
id="svg2" | |||
sodipodi:version="0.32" | |||
inkscape:version="0.45.1" | |||
sodipodi:docbase="/home/sam/debian/pkg-misc/unstable/libcaca/www/study" | |||
sodipodi:docname="fig2-3-5.svg" | |||
inkscape:output_extension="org.inkscape.output.svg.inkscape" | |||
inkscape:export-filename="fig2-3-5.png" | |||
inkscape:export-xdpi="60" | |||
inkscape:export-ydpi="60"> | |||
<defs | |||
id="defs4" /> | |||
<sodipodi:namedview | |||
id="base" | |||
pagecolor="#ffffff" | |||
bordercolor="#666666" | |||
borderopacity="1.0" | |||
gridtolerance="10000" | |||
guidetolerance="10" | |||
objecttolerance="10" | |||
inkscape:pageopacity="0.0" | |||
inkscape:pageshadow="2" | |||
inkscape:zoom="0.7" | |||
inkscape:cx="325.08159" | |||
inkscape:cy="991.45142" | |||
inkscape:document-units="px" | |||
inkscape:current-layer="layer1" | |||
showgrid="true" | |||
inkscape:window-width="1075" | |||
inkscape:window-height="847" | |||
inkscape:window-x="0" | |||
inkscape:window-y="0" | |||
inkscape:grid-points="true" /> | |||
<metadata | |||
id="metadata7"> | |||
<rdf:RDF> | |||
<cc:Work | |||
rdf:about=""> | |||
<dc:format>image/svg+xml</dc:format> | |||
<dc:type | |||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||
</cc:Work> | |||
</rdf:RDF> | |||
</metadata> | |||
<g | |||
inkscape:label="Layer 1" | |||
inkscape:groupmode="layer" | |||
id="layer1"> | |||
<rect | |||
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||
id="rect2160" | |||
width="118" | |||
height="118" | |||
x="6" | |||
y="8.3621826" /> | |||
<rect | |||
y="148.36218" | |||
x="6" | |||
height="118" | |||
width="118" | |||
id="rect2167" | |||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<path | |||
sodipodi:nodetypes="cccc" | |||
id="path2169" | |||
d="M 7,207.36218 L 123,207.36218 M 65,149.36218 L 65,265.36218" | |||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<rect | |||
y="8.3621826" | |||
x="166" | |||
height="118" | |||
width="118" | |||
id="rect2188" | |||
style="fill:#3f3f3f;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<rect | |||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||
id="rect2208" | |||
width="118" | |||
height="118" | |||
x="166" | |||
y="148.36218" /> | |||
<path | |||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||
d="M 167,207.36218 L 283,207.36218 M 225,149.36218 L 225,265.36218" | |||
id="path2210" | |||
sodipodi:nodetypes="cccc" /> | |||
<rect | |||
style="fill:#7f7f7f;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||
id="rect2228" | |||
width="118" | |||
height="118" | |||
x="326" | |||
y="8.3621826" /> | |||
<rect | |||
y="148.36218" | |||
x="326" | |||
height="118" | |||
width="118" | |||
id="rect2248" | |||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<path | |||
sodipodi:nodetypes="cccc" | |||
id="path2250" | |||
d="M 327,207.36218 L 443,207.36218 M 385,149.36218 L 385,265.36218" | |||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<rect | |||
y="8.3621826" | |||
x="486" | |||
height="118" | |||
width="118" | |||
id="rect2268" | |||
style="fill:#bfbfbf;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<rect | |||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||
id="rect2288" | |||
width="118" | |||
height="118" | |||
x="486" | |||
y="148.36218" /> | |||
<path | |||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||
d="M 487,207.36218 L 603,207.36218 M 545,149.36218 L 545,265.36218" | |||
id="path2290" | |||
sodipodi:nodetypes="cccc" /> | |||
<rect | |||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||
id="rect2308" | |||
width="118" | |||
height="118" | |||
x="646" | |||
y="8.3621826" /> | |||
<rect | |||
y="148.36218" | |||
x="646" | |||
height="118" | |||
width="118" | |||
id="rect2328" | |||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<path | |||
sodipodi:nodetypes="cccc" | |||
id="path2330" | |||
d="M 647,207.36218 L 763,207.36218 M 705,149.36218 L 705,265.36218" | |||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<rect | |||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||
id="rect3317" | |||
width="118" | |||
height="118" | |||
x="6" | |||
y="148.36218" /> | |||
<path | |||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" | |||
d="M 225,207.36218 L 225,148.36218 L 284,148.36218 L 284,266.36218 L 166,266.36218 L 166,207.36218 L 225,207.36218 z " | |||
id="rect3319" | |||
sodipodi:nodetypes="ccccccc" /> | |||
<path | |||
sodipodi:nodetypes="ccccccccc" | |||
id="path3324" | |||
d="M 385,207.36218 L 385,148.36218 L 444,148.36218 L 444,207.36218 L 385,207.36218 L 385,266.36218 L 326,266.36218 L 326,207.36218 L 385,207.36218 z " | |||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<rect | |||
y="148.36218" | |||
x="546" | |||
height="59" | |||
width="59" | |||
id="rect3326" | |||
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<path | |||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||
d="M 327,67.36218 L 443,67.36218 M 385,9.36218 L 385,125.36218" | |||
id="path2190" | |||
sodipodi:nodetypes="cccc" /> | |||
<path | |||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" | |||
d="M 647,67.36218 L 763,67.36218 M 705,9.36218 L 705,125.36218" | |||
id="path2186" | |||
sodipodi:nodetypes="cccc" /> | |||
<path | |||
sodipodi:nodetypes="cccc" | |||
id="path2188" | |||
d="M 487,67.36218 L 603,67.36218 M 545,9.36218 L 545,125.36218" | |||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||
<path | |||
sodipodi:nodetypes="cccc" | |||
id="path2192" | |||
d="M 167,67.36218 L 283,67.36218 M 225,9.36218 L 225,125.36218" | |||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> | |||
</g> | |||
</svg> |