PHP: Gif->JPEG->verkleinern gibt schwarzes Bild

Diskutiere mit über: PHP: Gif->JPEG->verkleinern gibt schwarzes Bild im Web-Programmierung Forum

  1. Jakob

    Jakob Thread Starter MacUser Mitglied

    Beiträge:
    1.067
    Zustimmungen:
    21
    Registriert seit:
    05.01.2004
    Hallo, habe hier eine funktionierende Funktion, die aus einem Gif ein JPEG macht:
    PHP:
    private function gif2jpeg($p_fl$p_new_fl=''$bgcolor=false)
        {
            list(
    $wd$ht$tp$at) = getimagesize($p_fl);
            
    $img_src imagecreatefromgif($p_fl);
            
    $img_dst imagecreatetruecolor($wd,$ht);
            
    $clr['red']=255;
            
    $clr['green']=0;
            
    $clr['blue']=0;
            if(
    is_array($bgcolor))
            {
                
    $clr=$bgcolor;
            }
            
    $kek imagecolorallocate($img_dst,$clr['red'],$clr['green'],$clr['blue']);
            
    imagefill($img_dst,0,0,$kek);
            
    imagecopyresampled($img_dst$img_src00,00$wd$ht$wd$ht);
            
    $draw true;
            if(
    strlen($p_new_fl)>0)
            {
                if(
    $hnd=fopen($p_new_fl,'w'))
                {
                    
    $draw false;
                    
    fclose($hnd);
                }
            }
            if(
    true==$draw)
            {
                
    header("Content-type: image/jpeg");
                
    $tmp imagecreatefromjpeg($img_dst);
                
    imagejpeg($img_dst);
            }
            else
            {
                
    imagejpeg($img_dst$p_new_fl);
            }
            
    imagedestroy($img_dst);
            
    imagedestroy($img_src);
        }
    Ein gif2jpeg('bild.gif') zeigt mir das Bild gleich im Browser an, da draw=false. Mit draw=true speichert es die Datei ab.

    Nun möchte ich bevor ich die Datei speichere sie noch verkleinern (deshalb konvertiere ich ja erst nach JPEG. Gif-Strichzeichnungen kleiner machen sieht grausich aus.) also ein imagecopyresample. Nur kommt das kleine Bild immer nur komplett schwarz heraus.

    Welchen Bilderstrom muss ich denn abfangen, damit ich diesen verkleinern kann? Ich dachte, ich nehme für den imagecopyresampled($target,imagecreatefromjpeg($img_dst),[…]). Geht aber wie gesagt nich.
    Oder kennt ihr eine andere Möglichkeit Gifs ansprechend zu verkleinern?
     
  2. JohnP

    JohnP MacUser Mitglied

    Beiträge:
    471
    Zustimmungen:
    6
    Registriert seit:
    12.10.2004
    Probier mal folgendes. Ich vewende es für meine dynamische Gallerie (Thumbs):
    PHP:
    header("Content-type: image/jpeg");
    $faktor 6;
    $size getimagesize($p_fl);
    $width round($size[0]/$faktor);
    $height round($size[1]/$faktor);
    $src imagecreatefromjpeg($p_fl);
    $dest imagecreatetruecolor($width,$height);
    imagecopyresized($dest,$src,0,0,0,0,$width,$height,$size[0],$size[1]);
    imagejpeg($dest);
    imagedestroy($dest);
    imagedestroy($src);
    Das Bild wird um den Faktor 6
    PHP:
    $faktor
    verkleinert.
     
Die Seite wird geladen...
Ähnliche Themen - PHP Gif >JPEG Forum Datum
Werte der gleichen Schlüssel summieren (assoziativen Array) Web-Programmierung 25.08.2016
einfaches php. emailformular bei strato Web-Programmierung 08.08.2015
PHP Array in Google Maps Wegpunkte umwandeln Web-Programmierung 13.03.2015
PHP Update auf 5.6 im Terminal für Localhost (MAMP und Laravel) Web-Programmierung 12.09.2014
PHP: Nächster Tag auf Deutsch ausgeben Web-Programmierung 23.01.2014

Diese Seite empfehlen

Benutzerdefinierte Suche