Hallo,
ich betreibe einen Seite, auf der User Bilder hochladen können. Aus dem Bild wird automatisch ein Thumbnail erzeugt und zwar mit folgender Funktion:
Das Script funktioniert zu weiten Teilen sehr gut.
Das Problem ist nur, dass manche Thumbnails komplett schwarz sind, obwohl die Originaldateien richtig kopiert werden (immer relativ große Bilddateien). Ich vermute stark, dass dieses Problem an meinem Hoster (1und1) liegt, der in der FAQ schreibt:
Allerdings kommt kein "Internal Server Error" und auch kein "CGI Limits reached", sondern, wie gesagt, die Thumbnails sind einfach nur schwarz.
Was kann ich tun, damit die Thumbnails dennoch korrekt erzeugt werden können?
Vielen Dank für eure Hilfe
Boron
ich betreibe einen Seite, auf der User Bilder hochladen können. Aus dem Bild wird automatisch ein Thumbnail erzeugt und zwar mit folgender Funktion:
PHP-Code:
function CreateThumbnail($Ordner, $Grafikdatei, $ThumbnailBreite) // Ordner mit Slash angeben!
{
$pfad = $Ordner.$Grafikdatei;
$Bilddaten = getimagesize($pfad);
$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];
if($OriginalBreite < $ThumbnailBreite)
{
$ThumbnailBreite = $OriginalBreite;
}
$Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor);
if($Bilddaten[2] == 1) // GIF
{
$Originalgrafik = ImageCreateFromGIF($pfad);
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
ImageCopyResampled($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite,
$ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
ImageDestroy($Originalgrafik);
ImageGIF($Thumbnailgrafik, $Ordner."thumb_".$Grafikdatei);
ImageDestroy($Thumbnailgrafik);
}
elseif($Bilddaten[2] == 2) // JPG
{
$Originalgrafik = ImageCreateFromJPEG($pfad);
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
ImageCopyResampled($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite,
$ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
ImageDestroy($Originalgrafik);
ImageJPEG($Thumbnailgrafik, $Ordner."thumb_".$Grafikdatei);
ImageDestroy($Thumbnailgrafik);
}
elseif($Bilddaten[2] == 3) // PNG
{
$Originalgrafik = ImageCreateFromPNG($Grafikdatei);
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
ImageCopyResampled($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite,
$ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
ImageDestroy($Originalgrafik);
ImagePNG($Thumbnailgrafik, $Ordner."thumb_".$Grafikdatei);
ImageDestroy($Thumbnailgrafik);
}
// Pfad zum Thumbnail zurueckgeben
return $Ordner."thumb_".$Grafikdatei;
}
Das Problem ist nur, dass manche Thumbnails komplett schwarz sind, obwohl die Originaldateien richtig kopiert werden (immer relativ große Bilddateien). Ich vermute stark, dass dieses Problem an meinem Hoster (1und1) liegt, der in der FAQ schreibt:
Folgende Einschränkungen sind technisch für Skripte festgelegt, welche von Ihnen auf unseren Webservern ausgeführt werden:
* Prozesse dürfen max. 10 Sekunden Rechenzeit beanspruchen
* Prozesse dürfen max. 32 Megabyte Speicher belegen
* Es dürfen max. 24 Prozesse gleichzeitig laufen
Bei Überschreitung einer der oben genannten Einschränkungen wird das Script „getötet“. Dieses macht sich durch einen „Internal Server Error (HTTP 500)“ oder durch die Fehlermeldung „CGI Limits reached, please try later!“ bemerkbar.
Die Rechenzeit von 10 Sekunden bezieht sich übrigens nicht auf die reale Laufzeit, sondern ist abhängig von der tatsächlichen Belastung des Servers.
Bitte beachten Sie:
Beansprucht ein Script 10% der Rechenleistung und läuft 2 Sekunden (und das ist schon sehr viel), beträgt die tatsächliche Rechenzeit nur 0,2 Sekunden.
* Prozesse dürfen max. 10 Sekunden Rechenzeit beanspruchen
* Prozesse dürfen max. 32 Megabyte Speicher belegen
* Es dürfen max. 24 Prozesse gleichzeitig laufen
Bei Überschreitung einer der oben genannten Einschränkungen wird das Script „getötet“. Dieses macht sich durch einen „Internal Server Error (HTTP 500)“ oder durch die Fehlermeldung „CGI Limits reached, please try later!“ bemerkbar.
Die Rechenzeit von 10 Sekunden bezieht sich übrigens nicht auf die reale Laufzeit, sondern ist abhängig von der tatsächlichen Belastung des Servers.
Bitte beachten Sie:
Beansprucht ein Script 10% der Rechenleistung und läuft 2 Sekunden (und das ist schon sehr viel), beträgt die tatsächliche Rechenzeit nur 0,2 Sekunden.
Was kann ich tun, damit die Thumbnails dennoch korrekt erzeugt werden können?
Vielen Dank für eure Hilfe
Boron
Kommentar