Hallo allerseits...
Mein Provider (Schlund und Partner) hat auf GDLIB 2.0.21 und PHP 4.3.6 umgestellt.
Auf diesem Webspace betreiben wir ein Bildportal mit Nachbestellmöglichkeit ( http://www.picsbay.de ).
Nach der Umstellung bekamen wir beim Bildupload und anschliessendem Erstellen der Thumnails folgende Fehlermeldung:
xxx.jpg is not a valid JPEG file
Die jpg-Datei ist aber nachweislich ok ! Der Fehler tritt auch nur bei höher aufgelösten Bilder auf (z.B. 2288x1712 Pixel) auf.
Dies sind aber Auflösungen die beim Digitalen Fotografieren häufig vorkommen.
Auslösend für diesen Fehler ist die Funktion imagecreatefromjpeg der gdlib.
Angesport von dieser Entdeckung und um die Möglichkeit einer fehlerhaften JPG-Datei habe ich dann versucht eigene JPG-Dateien
mit der GDLIB zu generieren (Siehe Code).
Der Fehler tritt auch beim Versuch auf eine TrueColor-Grafik mit mehr als ca. 3,2 MegaPixeln zu erstellen.
So funktioniert es noch eine Grafik mit 2200x1500 Punkten aufzubauen aber nicht mehr mit 2300x1500 Punkten.
Bei jeder Kombination mit mehr als 3.300.000 Pixeln steigt die Funktion imagecreatetruecolor also auch aus.
Ich habe hierzu ein Testscript erstellt. Ihr könnt es selbst mal ausprobieren unter http://www.picsbay.de/test/gd_test.php
Irgendwie habe ich den Verdacht das es sich hier irgendwie um ein Speicherproblem handelt, denn auf meinem Server läuft alles problemlos...
Ganz schön kniffelig ... gelle...
Also, ich bin um jeden Tip oder Workaround dankbar... Danke im voraus....
Klaus
Hier das Test-Script:
Mein Provider (Schlund und Partner) hat auf GDLIB 2.0.21 und PHP 4.3.6 umgestellt.
Auf diesem Webspace betreiben wir ein Bildportal mit Nachbestellmöglichkeit ( http://www.picsbay.de ).
Nach der Umstellung bekamen wir beim Bildupload und anschliessendem Erstellen der Thumnails folgende Fehlermeldung:
xxx.jpg is not a valid JPEG file
Die jpg-Datei ist aber nachweislich ok ! Der Fehler tritt auch nur bei höher aufgelösten Bilder auf (z.B. 2288x1712 Pixel) auf.
Dies sind aber Auflösungen die beim Digitalen Fotografieren häufig vorkommen.
Auslösend für diesen Fehler ist die Funktion imagecreatefromjpeg der gdlib.
Angesport von dieser Entdeckung und um die Möglichkeit einer fehlerhaften JPG-Datei habe ich dann versucht eigene JPG-Dateien
mit der GDLIB zu generieren (Siehe Code).
Der Fehler tritt auch beim Versuch auf eine TrueColor-Grafik mit mehr als ca. 3,2 MegaPixeln zu erstellen.
So funktioniert es noch eine Grafik mit 2200x1500 Punkten aufzubauen aber nicht mehr mit 2300x1500 Punkten.
Bei jeder Kombination mit mehr als 3.300.000 Pixeln steigt die Funktion imagecreatetruecolor also auch aus.
Ich habe hierzu ein Testscript erstellt. Ihr könnt es selbst mal ausprobieren unter http://www.picsbay.de/test/gd_test.php
Irgendwie habe ich den Verdacht das es sich hier irgendwie um ein Speicherproblem handelt, denn auf meinem Server läuft alles problemlos...
Ganz schön kniffelig ... gelle...

Also, ich bin um jeden Tip oder Workaround dankbar... Danke im voraus....
Klaus
Hier das Test-Script:
Code:
<?php $sx=$_SERVER['SCRIPT_NAME']; $pos= strrchr ($sx,"/"); if ($pos!=false) {$sx=substr ($sx, 0, strlen($sx)-strlen($pos));} $pfad=$_SERVER['DOCUMENT_ROOT'].$sx."/"; $zielname=$pfad."zieldatei.jpg"; $ysize=1500; for ($ix=1700;$ix<=2700;$ix=$ix+100) { //True-Color-Bild erzeugen $im = imagecreatetruecolor($ix, $ysize); //Vorhandene Zieldatei löschen @unlink($pfad.$zielname); //Bild abspeichern imagejpeg($im,$zielname); //Speicher freigeben imagedestroy($im); //Grösse des gespeicherten Bilds ermitteln $arbd=getimagesize($zielname); if (!isset($arbd[0])) { //Zieldatei wurde nicht erstellt echo "Fehler : Grafik mit ".$ix." x ".$ysize." = ".$ix*$ysize." Pixel konnte nicht erstellt werden ! "; } else { //Zieldatei wurde erstellt echo "OK : Grafik mit ".$arbd[0]." x ".$arbd[1]." = ".$arbd[0]*$arbd[1]." Pixel konnte erstellt werden ! "; } } //Eventuell vorhandene Zieldatei löschen @unlink($zielname); echo " GDLIB-Info: "; $gdi=gd_info(); reset ($gdi); while (list ($key, $val) = each ($gdi)) {echo "$key => $val ";} ?>
Kommentar