Bilder verkleinern bei Dateiupload

Picture

Grünschnabel
Habe ein Problem mit dem Bilder verkleinern beim Upload von Dateien in diesem Fall JPG Bildern

Bei Upload wird ein Thumbnail mit maximaler Seitenlänge 100px gespeichert das funktioniert auch sehr gut bei einer Auflösung der Orginaldatei von bsp: 2900x2173px. Wenn die Orginaldatei allerdings 2980x2232px beträgt dann wird kein Bild erzeugt. Bei 2980x150 zB wird wiederum eins erzeugt. Schätze mal das ab eine bestimmten Pixelanzahl des Bildes kein Thumbnail mehr erzeugt wird.
Ich kann mir nicht erklären woran das liegt.

Kennt einer das Problem oder eine Lösung für mich?

Script: (sollte richtig sein)

$source='galerie/upload/'.$newFilename;
$max=100;
$dest='galerie/upload/thumbs/'.$newFilename;

$imagedata = getimagesize($source);
$w = $imagedata[0];
$h = $imagedata[1];

if ($h >= $w) {
$wn = round($w/($h/$max));
$hn = $max;
}
else {
$hn = round($h/($w/$max));
$wn = $max;
}
$dst_img=ImageCreateTrueColor($wn,$hn);
$src_img=ImageCreateFromJpeg($source);
ImageCopyResampled($dst_img,$src_img,0,0,0,0,$wn,$hn,$w,$h);
imagejpeg($dst_img, $dest);

Danke
 
Wahrscheinlich liegt es an der Größe des Bildes.

Wie ist denn dein memory_limit eingestellt in der php.ini? (einsehbar über [phpf]phpinfo[/phpf])

Denke daran, dass PHP nicht einem unkomprimiertem Bild arbeitet, sprich er formt es um. Dadurch wird es sehr viel größer als das eigentlich jpg Bild ist.
 
Momentan teste ich noch lokal, da ist memory_limit auf 32M eingestellt. Kann man das ändern um zu sehen ob es daran liegt ?
 
Jap.

Allerdings empfehle ich es nur temporär hochzustellen, da du sonst immer darauf entwickelst und dich dann beim Testen auf deinem Webspace wunderst was denn jetzt nicht geht.

Entweder du versuchst es mit [phpf]ini_set[/phpf] oder du bearbeitest die php.ini (bei dieser Methode nicht das Neustarten des Webservers vergessen).
Am Besten versuchst du es in Intervallen: 64, 128 usw.
 
Ja es ist die Einstellung Memory_limit wenn ich es hoch setze (Habe es in der php.ini gemacht) funktioniert es.
Online ist diese Einstellung aber 24M also wird es da auch nicht gehen. Kann ich da mit ini_set() was ändern oder unterbindet das der Provider Wie würde der Befehl dann aussehen: ini_set(memory_limit,"128") Oder besser den Hoster fragen ob er was ändert?
 
Lieber den Hoster fragen, wobei er höchstwahrscheinlich "Nein" sagen wird.

Er wird dich wahrscheinlich eher auf einen teureren Tarif aufmerksam machen oder direkt versuchen dir einen Root zu verkaufen.
memory_limit auf 24MB ist bei einem einfachen Webspace Anbieter schon nett, viele lassen es bei 8MB, da sie lieber 1.000 Kunden auf einem Server haben als 100 die sich wohl fühlen ;)

Ich vermute dir wird nicht viel mehr übrig bleiben, als Bilder dieser Größenordnung zu "verbieten" oder anderweitig zu verarbeiten.
 
Ja habe es gerade online mit ini_set() versucht und funktioniert nicht.
Gut davon ausgehend das der Hoster nein sagt, wie kann man das Problem umgehen und trotzdem Bilder in der Größe verkleinern? Gar nicht?
 
Zurück