Bilder konvertieren?

droni

Erfahrenes Mitglied
Hallo,
ich bastel an einer Gallery, die automatisch thumbs erstellen soll.

Es klappt soweit alles, solange ich jpgs verwende.
Ich wollte es eigendlich so handhaben, dass alle thumbs .jpg Dateien sind.

Habe jetzt einfach mal versucht nen gif als jpg abzuspeichern. Ergebnis war ein schwarzes Bild.
Wäre ja auch zu schön gewesen, wenn es so einfach wäre :)

Jetzt habe ich in einem anderem Beitrag schon gelesen, das der support von gif-Dateien eingestellt wurde. Heißt das, daß das jetzt gar nicht mehr geht?

Gibt es überhaupt eine Möglichkeit Bilder zu konvertieren?
Halt png --> jpg oder gif --> jpg oder umgekehrt?

Danke im Vorraus
droni
 
Die Konvertierung von GIF zu JPEG muesste weiterhin gehen. Das der Support fuer GIF eingestellt ist, heisst, dass du keine GIFs mehr erstellen kannst - lesen von GIFs geht trotzdem noch.

Der Fehler muesste wohanders liegen. Funktioniert denn die Konvertierung JPEG -> JPEG einwandfrei, und kommt bei PNG -> JPEG auch nur schwarz?

Allerdings solltest du PNGs auch PNGs sein lassen, und GIFs wenn dann zu PNGs umwandeln, dann hast du weniger Bildverlust als mit JPEG.
 
Zuletzt bearbeitet:
Es geht mir ja hauptsächlich um die thumbs.
Wenn von denen die Quali nicht so toll ist, ist mir das völlig wumpe.
Das Original bleibt ein gif.

Ich hatte jetzt einfach dem Befehl imageJPG mit dem gif-bild gefüttert...
Ich denke mal, das da schon der Fehler liegt.
 
Paste einfach mal den Code hier, der das Konvertieren macht, vielleicht hast du da ja doch einen fehler drin.

Benutzt du imagecreatefromgif() fuer das Einlesen des Bildes?
 
PHP:
$altesBild=ImageCreateFromGIF($file_start); 
$neuesBild=ImageCreate($neueBreite,$neueHoehe); 
					ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); 
Imagejpeg($neuesBild, $datei_neu);
 
dem schließe ich mich an.
bekomm nur schwarze Thumbs und ich suche schon seit 4 Stunden nach ner Lösung. php.net bietet da auch nix an :( *mitheul*
 
versuchts mal hiermit das klappt bei mir:

PHP:
        // Maximale Breite bzw. Höhe hier rein -->
        $pic_xy = 80;
        // Dateiname hier rein -->
        $file = "test.gif";
        // JPEG Qulität hier rein (von 0 bis 100)
       $jpegquali = 80;

  
       // wenn bild nicht vorhanden STOP! 
       if ( !file_exists( $file ) ) die();

       // Größe des Bildes
       $pic_info = getimagesize( $file );
       $pic_x = $pic_info['0'];
       $pic_y = $pic_info['1'];


        // Bildgröße des Thumbs
        if ($pic_x > $pic_y) {
        	$image_x = $pic_xy;
            $image_y = intval ( ( $pic_y / $pic_x ) * $pic_xy );
        }
        else {
        	$image_y = $pic_xy;
            $image_x = intval ( ( $pic_x / $pic_y ) * $pic_xy );
        }

        // Bild erstellen
        $image = imagecreateTrueColor($image_x,$image_y);

        // großes Bild öffnen
        if ( $pic_info['2'] == 1 ) $source = imagecreatefromgif( $pic );
        elseif ( $pic_info['2'] == 2 ) $source = imagecreatefromjpeg( $pic );
        else die(); // wenn weder gif noch jpeg STOP!

        // großes Bild in kleines Bild
        imagecopyresized ( $image, $source, 0, 0, 0, 0, $image_x + 1, $image_y + 1, $pic_x, $pic_y);
 
          // Bild senden
    	header("Content-Type: image/jpeg");
    	imagejpeg($image,,$jpegquali);

Sorry wenn der Code nicht so schön untereinander ist :)
 
Zuletzt bearbeitet:
danke schonmal für die Antwort.
Bin noch am schaffen. Sobald ich zuhause bin, teste ich das.

mfg
droni
 
Zurück