Bild konvertieren mit PHP
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
beispiel
bild
bit
code
datei
einstellen
farbe
format
gesamte bild
http
konverter
manual
pixel
pos
schleifen
software
speichern
umwandeln
zeile
-
hallo
ich weiß nicht, ob sowas möglich ist, aber ich möchte ein bild mittels
PHP in ein eigenes format umwandeln, das so aussieht:
Pos = new Array(\"1-1\", \"2-1\", \"3-1\", \"1-2\", \"2-2\", \"3-2\", \"1-3\", \"2-3\", \"3-3\"); Col = new Array(\"blue\",\"blue\",\"blue\",\"blue\",\"red\", \"blue\",\"lime\",\"lime\",\"lime\");
(in diesem beispiel sieht das bild so (1000% vergrößert) aus:
http://pascalbir123.lima-city.de/beispiel.png)
Also, jedes Pixel soll einer Farbe zugewiesen werden.
Ist sowas möglich? Wenn ja, welches format eignet sich dazu am besten (bmp, png, gif etc.)?
Beitrag geändert: 22.7.2008 18:21:12 von pascalbir123
Beitrag geändert: 22.7.2008 19:26:55 von pascalbir123 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo,
zuerst würde ich eine Änderung an deinem Format vorschlagen:
$col = new array(\"0-0\" => \"blue\", \"0-1\" => blue ...
Mit zwei for-schleifen iterierst du durch das gesamte Bild und lädst mit
imagecolorat (http://de.php.net/manual/de/function.imagecolorat.php) den jeweiligen Farbwert an dem Pixel. Den musst du nur noch irgendwie in dein Format umwandeln und kannst das ganze dann speichern
ps3web
-
yeah, ich habs geschafft : der konverter funktioniert nur bei PNG-64x64-bildern mit
einer farbtiefe von 24 bit:
<form enctype=\"multipart/form-data\" action=\"Konverter.php\" method=\"GET\"> Konvertiere dieses Bild in das PB Software Company Format:<br><br> <input name=\"userfile\" type=\"file\"> <input type=\"submit\" value=\"Send File\"> </form> <?php $Datei = $_GET[\"userfile\"]; if ($Datei != \"\") { $img = imagecreatefrompng($Datei); $Pos = \"Pos = new Array(\"; $Col = \"Far = new Array(\"; for ($x = 1; $x <= 64; $x++) { for ($y = 1; $y <= 64; $y++) { //..... $rgb = ImageColorAt($img, $y-1, $x-1); $r = dechex(($rgb >> 16)); $g = dechex(($rgb >> 8) & 255); $b = dechex($rgb & 255); if (strlen($r) == 1) $r = \"0\".$r; if (strlen($g) == 1) $g = \"0\".$g; if (strlen($b) == 1) $b = \"0\".$b; $farbe = $r.$g.$b; //..... if ($farbe != \"ffffff\") { $Pos .= \'\"\'.$y.\'-\'.$x.\'\",\'; $Col .= \'\"#\'.$farbe.\'\",\'; }}} } ?> <textarea rows=\"20\" cols=\"90\"><?php echo $Pos.\"\\n\".$Col ?></textarea>
die bildgröße kann man natürlich einstellen (zeilen 13,14).
ach ja, die farbe Weiß wird nicht beachtet, damit die datei nicht so groß wird (zeile 30).
Beitrag geändert: 22.7.2008 21:11:02 von pascalbir123 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage