kostenloser Webspace werbefrei: lima-city


Bild konvertieren mit PHP

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    p**********3

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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 :-D

    ps3web
  4. Autor dieses Themas

    p**********3

    yeah, ich habs geschafft:biggrin: : 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
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!