Newsgroup: it.comp.www.php
Titolo: Fatal error su  GD - imagecreatefromjpg

Sto cercando di creare un sistemino semplice per fare inserire
un'immagine sul server ad un utente tramite un form.
Server: Apache/1.3.31 (Unix) PHP/4.3.9 con GD enabled
Prendo una img da 596KB e cerco di inserirla... Ottengo questo errore:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to
allocate 2048 bytes) in /usr/home/...../catalogo_insert_save.php on
line 112
Alla linea 112 c'è: 
$source = imagecreatefromjpeg($imagepathname);
Questo è il codice prima della linea 112:
$imagepathname = $upload_dir . "/" . $nomefoto;
$thumbpathname = $upload_dir . "/mini/" .$nomefoto;
$bigpathname = $upload_dir . "/big/" .$nomefoto;
list($width, $height) = getimagesize($imagepathname);
$newwidthmini = 78;
$newheightmini = 78;
$newwidthbig = 200;
$newheightbig = 200;
$thumb = imagecreate($newwidthmini, $newheightmini);
$big = imagecreate($newwidthbig, $newheightbig);
$source = imagecreatefromjpeg($imagepathname);
Ci sono dei limiti? Si possono gestire?
Tnx
-- 
La rovina del mondo sarà l'indifferenza...
...ma chi se fregaaaa!!  :D

 Prendo una img da 596KB e cerco di inserirla... Ottengo questo errore:
Una immagine JPG da 596Kb puo' arrivare a pesare, decompressa, ance
10/12 Mb. Se la tua memora e' limitata a 8 Mb e' evidente che ti venga
sollevato un Fatal error.
Puoi tentare di risolvere il problema usando 
http://www.php.net/ini_set
e la direttiva memory_limit (
http://www.php.net/manual/en/ini.core.php#ini.memory-limit
 ), comunque,
IMHO, non e' il massimo fare una "decompressione" simile lato server,
lo appesantisci troppo.
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

lo appesantisci troppo.
Allora come faresti? Dove la faccio 'sta decompressione? ...e ancora,
non si può evitare di decomprimere?...cioè "bendare" il server e
dirgli di fare operazioni senza decomprimere?...tanto lo so già che
sono solo dei jpg.
Nel senso... il form che creo è dedicato all'utente che non ha
programmi di grafica (Photoshop, Gimp...). E anche se ne avesse una
installato non è detto che lo sappia usare.
Volevo fare qualcosa di "pratico per chi non ha pratica"... Per la
serie... "Hai una foto nell'hd? Selezionala e premi un pulsante."


 sono solo dei jpg.
Se vuoi creare delle thumbnail non puoi fare a meno di decomprimerla. Ha
bisogno della bitmap su cui lavorare. Se e` un'immagine 1024x768 a 24
bit ti occupa tranquillamente 3 Mb. Se ci aggiungi la thumbnail a
200x150 sono altri 1.2 Mb, e se ne fai altre, continua a sommare.
Se la tua immagine e` 4000x3000x24 occupa gia` di suo 48 Mb...
Bye.

Se la tua immagine e` 4000x3000x24 occupa gia` di suo 48 Mb...
Quindi come posso comportarmi?
Aumentare il memory_limit a 24M (contro gli 8M di default) cosa
comporta al server?
Altri consigli?


 serie... "Hai una foto nell'hd? Selezionala e premi un pulsante."
Se e' proprio proprio un problema da risolvere mi scrivere un semplice
software che l'utente si puo' scaricare per fare il resize lato client.


 Altri consigli?
Far fare i thumbnail all'utente sul suo PC e fargli caricare 2 immagini
invece che 1, ma di solito questo porta a risultati disastrosi.
Bye.

invece che 1, ma di solito questo porta a risultati disastrosi.
Mmmm... mi sa che faccio così: metto il memory_limit a 48M e poi
impedisco al form di prendere foto che superano 1,1Mb di peso. Ho
provato con un Jpg di una fotocamera digitale da 1248Kb (2048x1546px
24bit di profondità) e non mi ha dato errore.
Che ne pensi? In questo modo dovrei essere in grado di prendere una
buona percentuale di foto...
