png + transparenz (gd)

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

  • png + transparenz (gd)

    okay. ich habe hier einen transparenten hintergrund, und 2 transparente pngs. (mit alpha) diese will ich aufeinanderlegen.
    dabei sollen beide bilder aufeinander sein, das 2. das erste teilweise überdecken und der hintergrund transparent sein.

    ich habe hier schon einiges probiert (und die suchfunktion genutzt), dabei habe ich 2 ergebnisse bekommen.

    1.:
    PHP-Code:
    <?
    header("Content-type: image/png");
    $img = imagecreate(100,300);

    $white = imagecolorallocate ($img,255,255,255);
    $transparency = imagecolortransparent($img,$white);
    imagefill($img,0,0,$white);
    imagecopy($img,imagecreatefrompng("test1.png"),20,100,0,0,58,60);
    imagecopy($img,imagecreatefrompng("test2.png"),20,45,0,0,55,68);
    imagepng($img);
    imagedestroy($img);


    ?>

    das erzeugt 2 bilder, übereinander, ohne weisse pixel am rand, allerdings ist bei test2.png der transparente hintergrund über test1.png.

    (der hintergrund bleibt transparent, aber test1.png ist jetzt bis zum bildrand von test2.png abgehackt, test2.png überdeckt also test1.png)

    2. möglichkeit:
    PHP-Code:
    <?
    header("Content-type: image/png");
    $img = imagecreatetruecolor(100,300);

    $white = imagecolorallocate ($img,255,255,255);
    $transparency = imagecolortransparent($img,$white);
    imagefill($img,0,0,$white);
    imagecopy($img,imagecreatefrompng("test1.png"),20,100,0,0,58,60);
    imagecopy($img,imagecreatefrompng("test2.png"),20,45,0,0,55,68);
    imagepng($img);
    imagedestroy($img);


    ?>
    alles was ich geänderthabe ist imagecreate() zu imagecreatetruecolor()

    jetzt liegen die 2 bilder zwar richtig übereinander, und test1.png wird nicht abgehackt, aber dafür nehmen die äußeren alphapixel die farbe von $white an (in diesem fall weiß), anstatt transparent zu sein.
    Zuletzt geändert von kyo; 22.07.2007, 19:31.

  • #2
    Habe das Problem nicht richtig verstanden (zu früh am morgen? ) aber es hat nichts damit zu tun, dass der IE keine transparenten Grafiken anzeigen kann, oder?
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      nein.

      ich will dass es wie bsp2.php aussieht (also, so als hätte er den hut auf)

      aber auf schwarzem hintergrund halt die alpha transparenz von 1 hat.
      2 nimmt hier nämlich die farbe von $white an (siehe source)
      Zuletzt geändert von kyo; 22.07.2007, 19:32.

      Kommentar


      • #4
        Hmm, ich verstehe es auch nicht. Was genau ist jetzt das Problem?

        Kommentar


        • #5
          was ist daran so schwer zu verstehen?

          Kommentar

          Lädt...
          X