imagecopyresized + transparenz

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • imagecopyresized + transparenz

    Hi!

    Ich hoffe ihr könnt mir auch hier weiterhelfen...

    Eigentlich keine große Sache.
    Ich will aus einem 150x250 Pixel großem PNG-Bild einen 50x50 Pixel großen Ausschnitt als PNG nehmen.

    Das Ergebnis ist leider ziemlich verfälscht in der Farbe.

    Beispiel:
    Original: http://www.bestbluff.de/gfx/samples/big.png

    Ausschnitt: http://www.bestbluff.de/gfx/samples/small.png

    Der Code dazu:

    <?PHP
    header("Content-type: image/png");

    $imgA = imagecreatefromPNG("big.png");
    imageAlphaBlending($imgA, false);
    imageSaveAlpha($imgA, true);

    $imgB = imagecreate(50,50);

    imagecopyresized($imgB, $imgA, -45,-20, 0,0, 150,250, 150,250);

    ImagePNG($imgB);
    ?>

    Ich habe auch schon imagecreate() durch imagecreatetruecolor() ersetzt.
    Das gibt mein Bild zwar in den richtigen Farben wieder (!), aber packt leider einen tiefschwarzen Hintergrund rein.
    Ich würde aber gerne weiterhin die Transparenz nutzen oder, falls das gar nicht möglich sein sollte, warum auch immer, im Notfall wenigstens einen weißen Hintergrund nutzen.

    Es wäre großartig, wenn ihr mir da weiterhelfen könntet.
    Ich sitze an dem Problem seit mehreren Wochen

    Danke schonmal für eure Mühe!

    Flo

  • #2
    ähmm muss das dann net
    PHP-Code:
     imageAlphaBlending($imgAtrue); 
    heissen ?
    "Nicht jeder Mensch kann und soll Programmieren[...]".

    Kommentar


    • #3
      Es müsste gehen, indem du das Bild mit imagecreatetruecolor anlegst, dir danach mit imagecolorallocatealpha eine komplett transparente Farbe machst und mit dieser dann das Bild mit imagefill füllst. Dann solltest du ein komplett transparentes Bild haben, auf das du dann andere Sachen packen kannst.
      hopka.net!

      Kommentar


      • #4
        PHP-Code:
        <?PHP
        header
        ("Content-type: image/png");

        $imgA imagecreatefromPNG("big.png");
        imageAlphaBlending($imgAtrue);
        imageSaveAlpha($imgAtrue);

        $imgB imagecreatetruecolor(50,50);

        imagecopyresized($imgB$imgA, -45,-200,0150,250150,250);

        ImagePNG($imgB);
        ?>
        geht das net so ??

        Nur mal so, keine Ahnung ob es geht(müsste mich sonst ein bisschen wieder eindenken)
        "Nicht jeder Mensch kann und soll Programmieren[...]".

        Kommentar

        Lädt...
        X