php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.06.2004, 21:45  
Gast
 
Beiträge: n/a
Standard GDLIB -> Fehler : xxx.jpg is not a valid JPEG file

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:
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
";}
?>
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.06.2004, 22:14  
Gast
 
Beiträge: n/a
Standard Re: GDLIB -> Fehler : xxx.jpg is not a valid JPEG file

Zitat:
Zitat von Gnohmi
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.
Beachtet Ihr auch den Speicherbedarf bei solchen dicken Bildern? IdR. müssen PHP Scripte mit 8MB RAM auskommen.

Ansonsten müßtestg Du mir mal einen Link auf ein solches JPG geben, damit ich das mal auf meiner Kiste testen kann.
  Mit Zitat antworten
Alt 03.06.2004, 23:19  
Gast
 
Beiträge: n/a
Standard Re: GDLIB -> Fehler : xxx.jpg is not a valid JPEG file

Hallo

Hab mal ein typisches Bildchen unter http://www.picsbay.de/test/lion.jpg abgelegt...
Orginalauflösung 2288 x 1712 Punkte 835KB

Gruss Klaus
  Mit Zitat antworten
Alt 04.06.2004, 01:37  
Gast
 
Beiträge: n/a
Standard Re: GDLIB -> Fehler : xxx.jpg is not a valid JPEG file

Zitat:
Zitat von Gnohmi
Orginalauflösung 2288 x 1712 Punkte 835KB
OK. Ist allerdings sehr dick. Wenn ich mich nicht irre, nutzt GD für Veränderungen ein internes Format. Und da kann es durchaus möglich sein, daß da die 8MB RAM fix weg sind. Eben mal als TIFF gespeichert: satte 8 MB. Da habe ich Zweifel, ob Du das mit PHP hinkriegst.

Mit ImageMagick (convert) ist sowas allerdings absolut keine Hürde.

Allerdings weiß ich nicht, ob Ihr einen eigenen Server habt und dieses Linuxprogramm installieren könnt. Ansonsten: Provider fragen...

Ich teste das aber erstmal auf meiner Kiste, ob es wirklich am Speicher liegt!
  Mit Zitat antworten
Alt 04.06.2004, 08:45  
Gast
 
Beiträge: n/a
Standard

Hallo

Danke erstmal für die Bemühungen...
Intressant an der Sache ist eben das das Erstellen eines Bildes mit imagecreatetruecolor ach nur bis zu einer bestimmten Grösse funktioniert.

Ich denke mal das das Reservieren von Speichern bei imagecreatetruecolor und imagecreatefromjpeg ziemlich ähnlich läuft. Warscheinlich wird auch bei beiden Funktionen ähnlich viel Speicher benötigt.

Nen Admin-Zugang auf den Webspace habe ich leider nicht.
Aber eigene CGI's können verwendet werden.

Könnte man ImageMagick oder ein anderes Konvertierungstool vielleicht als CGI aufrufen ?

Gruss
Klaus
  Mit Zitat antworten
Alt 04.06.2004, 11:19  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Gnohmi
Ich denke mal das das Reservieren von Speichern bei imagecreatetruecolor und imagecreatefromjpeg ziemlich ähnlich läuft. Warscheinlich wird auch bei beiden Funktionen ähnlich viel Speicher benötigt.
PHP muß das alte und das neue Bild in den Speicher kriegen. Und da daraus erst mal ein "Pixel-Bild" gebastelt werden muß und bei vielen Providern 8MB eingestellt sind, wars das wahrscheinlich schon.

Zitat:
Könnte man ImageMagick oder ein anderes Konvertierungstool vielleicht als CGI aufrufen ?
Das wäre der andere Weg, ein passendes Konvertierungsprogramm aufzurufen. Kläre ab, ob Dein ISP ImageMagick installiert hat. /usr/bin/convert wäre dann Dein Freund. Im INet gibt es dazu haufenweise Hilfe und Beispiele.
  Mit Zitat antworten
Alt 08.06.2004, 16:58  
Gast
 
Beiträge: n/a
Standard

Hallo

Ich hab jetzt nochmal die PHPINFO eingesehen.
Habe folgendes Memory-Limit :
memory_limit 40M

Das müsste doch eigentlich reichen um ne Bitmap mit > 2300 x 1500 Punkten per imagecreatetruecolor aufzubauen oder ?

Ich hab noch einen Thread hier im Forum gesehen mit dem Thema
Thumbsproblem bei Bilder > 1 MB
könnte es sich hierbei vielleicht um das gleiche Problem handeln ?

Hat noch jemand ne Idee was ich noch testen könnte ?

Gruss Klaus
  Mit Zitat antworten
Alt 08.06.2004, 18:14  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Gnohmi
Hat noch jemand ne Idee was ich noch testen könnte ?
Guck Dir einfach das mal an:
http://test.php-help.info/img-6/

Original ist das Bild lion.jpg von Dir.
  Mit Zitat antworten
Alt 09.06.2004, 08:04  
Gast
 
Beiträge: n/a
Standard

Hallo Meikel

Danke für die Mühe... Ist ja ein super Service hier...

Werde das Script mal auf meinem Webspace testen. Bin echt mal gespannt....
Bin mir zwar ziemlich sicher das mein Thumb-Script auch OK ist, aber oftmals sieht man ja den Wald vor lauter Bäumen nicht mehr

Gruss Klaus
  Mit Zitat antworten
Alt 09.06.2004, 14:37  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Gnohmi
Danke für die Mühe... Ist ja ein super Service hier...
Ich benötige ganz wenig Grafikbearbeitung, aber ein Script, um Bilder einzudampfen, kann auch ich ab und zu mal gebrauchen.
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] PHP -&gt; Ordner anlegen der sich auch beschreiben lässt?! Nightuser PHP Tipps 2008 13 30.06.2008 23:51
"is not a valid JPEG file" heohni PHP Tipps 2006 6 25.02.2006 00:08
php file download funkt nur mit pdf fehler bei .doc,... PHP Tipps 2006 0 10.02.2006 13:12
session_start fehler? no such file found? seejay PHP Tipps 2006 11 10.01.2006 09:26
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
libmysqlclient.so.10 is needed Datenbanken 11 20.06.2005 15:27
[Erledigt] Unix file lesen? PHP-Fortgeschrittene 15 08.06.2005 18:05
update auf php 5.0.4 robo47 Server, Hosting und Workstations 6 10.04.2005 19:00
ShowIt_V1.8.14 PHP Tipps 2005 1 23.03.2005 19:13
Fehlermeldung - aber kein fehler... Tschuu HTML, Usability und Barrierefreiheit 16 14.03.2005 15:56
Uploader-Script fehler beim Thumbx erstellen PHP Tipps 2004-2 7 07.12.2004 10:35
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
Counter zeigt nach ca. 2-3 Stunden fehler an PHP Tipps 2004 2 26.08.2004 20:08

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
is not a valid jpeg file, xxx.jpg, jpg auf fehler prüfen, nach gdlib speicher leeren, wo finde ich die datei gd_test.php, jpg mit fehlermeldung, jpeg xxx, php not a jpeg file pdf, gdlib php bild prüfen, jpg dateien auf fehler analysieren, xxx thum pic, php jpg fehler prüfen, jpg auf fehler überprüfen, php jpg bild auf fehler prüfen, jpeg auf fehler prüfen, jpg datei auf fehler prüfen, jpg is not in a valid format, xtcommerce gd lib not found, xtc imageprocessing, not a jpeg file

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:40 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.