Als kleines Spielzeug und aus Langeweile habe ich gestern Abend ein kleines Script geschrieben, dass ein Bild Pixel für Pixel einliest, und dann wieder als Html-Tabelle ausgibt, mit den Farben des Bildes als Hintergrundfarben der Tabellenzellen. Das wird den meisten hier vermutlich nicht ganz so viel sagen, und so ziemlich keinen wird es was nutzen, aber vielleicht hat ja irgendwer seinen Spass daran. Und wenn ich nochmal Lust dazu hab, entwickel ich des vielleicht sogar noch was weiter.
Wer sich das ganze einmal anschaun will, kann das hier ausprobieren.
Für den Quellcode einfach den kompletten Artikel betrachten
<?php
if(!is_numeric($zoom) || ($zoom <= 0)) {
$zoom = '1';
} else {
$zoom = round($zoom);
}
$file = (empty($file)) ? 'image.jpg' : $file;
ini_set('max_execution_time', "600");
?>
<head>
<title>Img2Html</title>
<style type="text/css">
table {
border-spacing: 0px;
}
table td {
width: <?php echo $zoom; ?>px;
height: <?php echo $zoom; ?>px;
padding: 0px;
margin: 0px;
}
</style>
</head>
<body>
<table>
<tr>
<?php
function hexcolor($c) {
$r = ($c >> 16) & 0xFF;
$g = ($c >> 8) & 0xFF;
$b = $c & 0xFF;
return '#'.str_pad(dechex($r), 2, '0', STR_PAD_LEFT).str_pad(dechex($g), 2, '0', STR_PAD_LEFT).str_pad(dechex($b), 2, '0', STR_PAD_LEFT);
}
$im = imagecreatefromjpeg($file);
for($i = 0; $i < (($width=imagesx($im)) * ($height=imagesy($im))); $i++) {
echo ((($i+1) % $width) == 0) ? '<td style="background-color: '.hexcolor(imagecolorat($im, ($i%$width), floor($i/$width))).'"></td></tr><tr>'."n" : '<td style="background-color: '.hexcolor(imagecolorat($im, ($i%$width), floor($i/$width))).'"></td>'."n";
}
?>
</tr>
</table>
</body>
Anmerkungen:
- Die Funktion hexcolor ist einem Kommentar der PKP-Dokumentation entnommen
- Die Ausgabe ist noch lange kein valides Html, sollte sich aber rechct leicht anpassen lassen
- Die Verwendung einer eher nicht so brauchbaren Tabelle anstelle von divs beruht auf der Tatsache, dass es den Anschein hat, dass sich eine Tabelle schneller vom Browser laden lässt
Eine Reaktion zu “Playing”
A nonüm Vanni
Kommentar verfasst am 16. Dezember 2007 um 10:05 Uhr
Bitte… kannst kannst du mal eine Beispielseite auf deinen Server setzen, auf der das Skript an einem Bild zum Einsatz kommt? Ich kann mir das leider nicht so genau vorstellen, ob das Ergebnis dann wieder genau so aussieht wie das Bild… weil ist ja ne Tabelle, solange man den Rahmen nicht unterdrückt… sollte das doch ziemlich lustig ausschauen. deshalb… tust du mir den gefallen?