Impressum | Kontakt | Datenschutzerklärung | Gästebuch 

Mein Blögchen für alles!

Just another WordPress weblog – but this one is mine
16. Dez 2007
02:01
Playing
Posted by Astrodan under Fun & Thinking, Programmierung

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?

XHTML: Die folgenden Tags können benutzt werden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>