Announcement

Collapse
No announcement yet.

bild erzeugung mit php - problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • bild erzeugung mit php - problem

    hallo allemiteinander, ich habe mein problem auch schon in ein anderes board gepostet - allerdings wurde mein problem dort nicht gelöst. deshalb wende ich mich mal ein ein "professionelleres" Forum. Es geht um folgendes:

    ich möchte für ein browsergame 2 bilder (beide gif) übereinander kopieren. mein erstes problem war, dass sich die farbtöne im neuen bild ineinander vermischt haben.

    hier der 1. quellcode:
    PHP Code:
    <?
    header("Content-Type: image/gif");

    $ebene_01 = imagecreatefromgif("01.gif");
    $ebene_03 = imagecreatefromgif("03.gif");

    imagecopy($ebene_01, $ebene_03, 0, 0, 0, 0, 40, 40);

    imagegif($ebene_01);
    ?>
    datei online:
    http://warriors-legend.de/andere/forum/bildtest.php

    bilder:
    http://warriors-legend.de/andere/forum/01.gif
    http://warriors-legend.de/andere/forum/03.gif

    ----------
    jetzt wollte ich das problem mit "imagecreatetruecolor()" lösen, dass sich die farbtöne nicht vermischen.
    code:
    PHP Code:
    <?
    header("Content-Type: image/gif");
    $im = imagecreatetruecolor(40, 40);

    $ebene_01 = imagecreatefromgif("01.gif");
    $ebene_03 = imagecreatefromgif("03.gif");

    imagecopy($im, $ebene_01, 0, 0, 0, 0, 40, 40);
    imagecopy($im, $ebene_03, 0, 0, 0, 0, 40, 40);

    imagegif($im);
    ?>
    die datei ist unter
    http://warriors-legend.de/andere/forum/gif.php
    zu erreichen

    mein problem mit der farbtonvermischung wurde gelöst, allerdings habe ich jetzt kein transparentes gif mehr (der hintergrund ist jetzt schwarz) und nicht, wie gewünscht, transparent. ich möchte, wenn möglich, im gif format bleiben. mit "imagecolortransparent()" konnte ich das problem nicht lösen.

    ich hoffe ihr könnt mir da weiterhelfen.

  • #2
    Hallo root,

    ich weiß nich ob es problemlos auf GIFs übertragbar ist, aber mit PNGs hab ich hiermit gute Erfahrung gemacht:
    PHP Code:
    $in imagecreatefrompng("meinBild.png");
    $in2 imagecreatefrompng("mein2Bild.png");
    $bgColor ImageColorAllocate($in255255255);
    imagecolortransparent($in$bgColor);
    imagecolortransparent($in2$bgColor);
    imagecopymerge($in$in20000121790); 
    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      sorry, habs probiert - geht nich...

      folgender code:

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

      $in = imagecreatefrompng("0001.png");
      $in2 = imagecreatefrompng("0002.png");
      $bgColor = ImageColorAllocate($in, 255, 255, 255);
      imagecolortransparent($in, $bgColor);
      imagecolortransparent($in2, $bgColor);
      imagecopymerge($in, $in2, 0, 0, 0, 0, 40, 40, 90);

      imagepng($in);
      ?>
      folgende dateien:
      http://warriors-legend.de/andere/forum/forum_test.php

      http://warriors-legend.de/andere/forum/0001.png
      http://warriors-legend.de/andere/forum/0002.png

      klappt leider nicht. das bild ist nichtmal transparent. man sieht das nur nicht gleicht, weil der browser auch einen weißen hintergrund hat.
      ich hoffe ihr könnt mir trotzdem mit meinem problem weiterhelfen.

      Comment


      • #4
        Hallo root,

        habs jetzt mal mit deinen Bildern probiert und so sollte es funktionieren:
        PHP Code:
        <?
        header("Content-Type: image/gif");
        $im = imagecreate(40, 40);
        $bgColor = ImageColorAllocate($im, 0, 0, 0);

        $ebene_01 = imagecreatefromgif("0001.gif");
        $ebene_03 = imagecreatefromgif("0002.gif");

        imagecopy($im, $ebene_01, 0, 0, 0, 0, 40, 40);
        imagecopy($im, $ebene_03, 0, 0, 0, 0, 40, 40);

        imagecolortransparent($im, $bgColor);

        imagegif($im);
        ?>
        Das Ganze ließe sich mit imagecreatetruecolor() und imagepng() auch auf transparente truecolor PNGs umstellen, allerdings mit dem bekannten Nachteil, das der IE bis 6 diese nur mit schwarzem Hintergrund anzeigt. Aber du wolltest ja eigentlich eh GIFs haben

        Gruß Falk
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment


        • #5
          sorry, geht immer noch nicht. es gibt immer noch eine farbtonvermischung im gif bild.
          hier das ergebnis:
          http://warriors-legend.de/andere/forum/gif2.php

          Comment


          • #6
            Sorry, dann ist bei deiner gd-Bibliothek was anders als bei meiner
            Bei meinem Test hat es so funktioniert - siehe Anhang.

            Gruß Falk
            Attached Files
            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

            Comment


            • #7
              wie kann ich das problem beheben? bei mir funktioniert es weder auf xampp noch auf dem space meines anbieters.

              folgender code:
              PHP Code:
              <?
              $var = gd_info();
              foreach ($var as $ausg) {
                  echo "<pre>" . $ausg . "</pre>";
              }
              ?>
              unter folgender URL:
              http://warriors-legend.de/andere/gd_info.php
              Zuletzt editiert von root; 25.02.2007, 19:36.

              Comment

              Working...
              X