Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Thumbnails erzeugen

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
pvdb
PostRank 5
PostRank 5
Beiträge: 321
Registriert: 16.01.2005, 22:37
Wohnort: Hannover

Beitrag von pvdb » 30.09.2005, 01:16

Hi,

um bilder in unterschiedlichen größen zu generieren, habe ich mir eine einfache funktion gebaut:

Code: Alles auswählen

function createThumb($remote, $img_width, $target)
{
   // Bildgröße ermitteln
   list($src_width, $src_height, $type) = getimagesize($remote); 
   
   // Die breite muss verkleinert werden
   if ($src_width > $img_width)
   {
      $new_width = $img_width; 
      $new_height = intval($src_height*$new_width/$src_width); 
      
      switch($type)
      {
         case 1:
            $old_image = ImageCreateFromGIF($remote); 
            $new_image = ImageCreate($new_width, $new_height); 
            ImageCopyResized($new_image, $old_image, 0, 0, 0, 0, $new_width, $new_height, $src_width, $src_height); 
            ImageJPEG($new_image, $target); 
         break;
         
         case 2:
            $old_image = ImageCreateFromJPEG($remote); 
            $new_image = ImageCreate($new_width, $new_height); 
            ImageCopyResized($new_image, $old_image, 0, 0, 0, 0, $new_width, $new_height, $src_width, $src_height); 
            ImageJPEG($new_image, $target); 
         break;
      }
   }   
   else
   {
      // bildgröße okay
      copy($remote, $target);
   }
}
Soweit funktioniert die Funktion auch, jedoch gibst da zwei kleine Probleme.

Hin und wieder werden Bilder erzeugt, die komplett schwarz sind. Ich habe mir von diesen Bildern mal die Original Dateien angesehen. Entweder die Bilder sind kaputt (wenn ich Sie im Web angucke sehe ich nur die Umrisse der breite) oder die Bilder sind vorhanden und haben eine sehr breite Breite (wie sich das anhört :) ).

Schwarze Bilder möchte ich nicht haben, da lasse ich lieber mein 404 Bild anzeigen. Wo im Quelltext kann ich abfragen ob ein sauberes Bild erzeugt werden konnte oder ist dies nicht möglich?

Hin und wieder kommt auch mal so ne Fehlermeldung:

Warning: imagecreatefromjpeg(): '.....' is not a valid JPEG file

Die Original Datei, kann aber ohne Probleme angezeigt werden. Muss ja irgendwas nicht stimmen?

Phil