Seite 1 von 1

Thumbnails erzeugen

Verfasst: 30.09.2005, 01:16
von pvdb
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

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Thumbnails erzeugen

Verfasst: 30.09.2005, 03:04
von Johny
was sind das denn für orginaldateien wo sind die her, saugst du die irgendwo aus dem web?
Vielleicht sind es gifs die aber auf .jpg enden

Verfasst: 30.09.2005, 06:43
von pvdb
das sind lediglich lieferanten bilder, die durch eine c++ soft als zip geladen werden, dann entpackt werden, entsprechend umbenannt werden und ins web hochgeladen werden.

wäre denkbar, dass das einige gif bilder als jpg endung vorhanden sind. aus diesem grund habe ich ja auch mein switch case eingebaut, so dass es dieses problem doch nicht mehr geben sollte. da wird dann ein gif geöffnet und als jgp wieder abgespeichert.

lediglich an der stelle wo die bilder einfach kopiert werden könnte ich wohl noch prüfen ob es ein gif bild ist und dann konvertieren.

dennoch müssen fehlerhafte bilder an geeineter position abgefangen werden.

phil

Re: Thumbnails erzeugen

Verfasst: 30.09.2005, 08:50
von SISTRIX
pvdb hat geschrieben: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?
Vielleicht die Checksumme des neuen Bildes gegen die eines komplett schwarzen vergleichen und ggfl. aussortieren?

Gruß Johannes

Thumbnails erzeugen

Verfasst: 30.09.2005, 11:52
von Bimbel
Was es auch sein kann:
Die Originalbilder belegen (entpackt im Hauptspeicher) zuviel Speicher, sprich mehr, als du PHP als maximale Größe zugewiesen hast, dann entstehen auch schwarze Bilder. Dies könntest du abfangen, indem du
- den Speicher für PHP erhöhst oder
- die Auflösung der Bilder vorher prüfst und damit den Speicherbedarf errechnest

Thumbnails erzeugen

Verfasst: 01.10.2005, 17:31
von pvdb
so, die bilder die heile sind, werden nun in entsprechenden größen erzeugt, wenns nen fehler gibt, werden die überpsrungen. vorhandene fehlerhafte daten werden gelöscht. eine meldung kommt von php, die lässt sich nicht ausblenden, aber nicht so wild.

eine neue soft, lädt sich nun die fehlerhaften bilder direkt vom den lieferantenseiten und fertig :)

vielen dank nochmal für die hinweise.

phil