ImageResize PNG-24-Alphatransparent

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

  • ImageResize PNG-24-Alphatransparent

    Hi,

    habe ein problem und zwar müssen per PHP Bilder verkleinert werden...

    leider wird bei den PNGs die Alpha Transparent entfernt -.- ...

    bei einigen gehts bei einigen wohl nicht... keine klare Antwort...

    habe folgenden Quellcode probiert, funktioniert aber nicht:

    PHP-Code:
    siehe unten 
    danach wollte ich auf gmagick oder imagick wechseln dort kommt folgendes:
    Code:
    Fatal error: Uncaught exception 'ImagickException'
    with message 'no decode delegate
    for this image format `/home/www/htdocs/test/img/test.png' @
    constitute.c/ReadImage/530' in /home/www/htdocs/test/img/imagecreatfrompng.php:7
    Stack trace:
    #0 /home/www/htdocs/test/img/imagecreatfrompng.php(7): Imagick->__construct('test.png')
    #1 {main}
      thrown in /home/www/htdocs/test/img/imagecreatfrompng.php on line
    PHP-Code:
    //header('content-type: image/png');
    $w 130;
    $h 20;
    $file 'test.png';
    $img = new Imagick($file);
    if (
    $crop) {
            
    $img->cropThumbnailImage($w$h);
        } else {
            
    $img->thumbnailImage($w$hTRUE);
        }

        echo 
    $img
    Hoffe Ihr könnt mir da Tipps geben...
    oder gar examples???

    Thema gefunden:
    http://www.php-resource.de/forum/php...ibehalten.html
    Zuletzt geändert von Gunah; 13.01.2010, 17:47.

  • #2
    Was ist der Unterschied zwischen funktionierenden und den nicht funktionierenden Bildern?

    Kommentar


    • #3
      verkleinert wird das Bild schon,
      nur ist der Background statt Alpha-Transparent schwarz...

      habe gerade gesehen, das ich in dem Script oben den Fehler habe.
      imagealphablending, imagesavealpha - abgeändert...
      hier eine Resultat: imagecreatfrompng.png

      hier das aktuelle:
      PHP-Code:
      siehe unten 
      Aktueller PHP Release von Debian Squeeze amd64
      Zuletzt geändert von Gunah; 13.01.2010, 17:48. Grund: PHP Version

      Kommentar


      • #4
        Hallo,

        du hast imagesavealpha für das falsche Bild eingeschaltet.

        Gruß,

        Amica
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          kannst du mir auf die sprünge helfen =)
          weil hab mir noch mal bei php.net/imagesavealpha angeguckt... es ist eigtl an der richtigen stelle, nur tut er es irgendwie nicht...

          hier mal das Script mit Example Datei:
          gd-png24.zip

          PHP-Code:
          siehe unten 
          Zuletzt geändert von Gunah; 13.01.2010, 18:00.

          Kommentar


          • #6
            Du setzt das für das falsche Bild. Du musst es bei $nimage setzen, nicht bei $image, weil du ja auch $nimage speichern willst und nicht $image. Ich weiß nicht, wie ich es besser erklären soll, als dass du das beim falschen Bild setzt
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              man bin isch bled =)...

              PHP-Code:
              <?php

              header
              ('content-type: text/html');

              $imagefile 'test.png';
              $image=imagecreatefrompng($imagefile);
              /*imagesavealpha($image, true);
              imagealphablending($image, false);*/
              $size=getimagesize($imagefile);

              $nimage=imagecreatetruecolor(130,20);
              imagealphablending($nimagefalse);
              imagesavealpha($nimagetrue);
              imagecopyresampled($nimage,$image,0,0,0,0,130,20,$size[0],$size[1]);

              imagepng($nimage,'test-out.png');

              imagedestroy($image);
              imagedestroy($nimage);
              echo 
              '<div style="background: black;">';
              echo 
              "<img src=\"test-out.png\" />";
              echo 
              '</div>';

              ?>

              Kommentar

              Lädt...
              X