problema foto ridimensionata

ciao a tutti,

ho un problema con uno script che utilizzo per ridomensionare una foto presa in input .

SE la foto c'è , viene ridimensionata senza problemi.

Se la foto non c'è gliene passo una bianca di tipo GIF e gli dico di ridimensionarla. Il risultato in questo caso però è una foto con sfondo nero.

come posso rimediare a questo problema facendo in modo che lo sfondo rimanga bianco??

(sto lavorando con immagini che poi vanno inserite in un db...)

elseif ($tipo_file1=='image/gif')

{

   $nuova_larghezza = 90;

   $nuova_altezza = 68;

   

//ricavo la dimensione dell'immagine originale

list($larghezza_orig, $altezza_orig, $tipo, $attr) = getimagesize($_FILES['file_inviato1']['tmp_name']);

              

//creo una nuova immagine che conterrà l'anteprima

$immagine_temporanea = imagecreatetruecolor($nuova_larghezza, $nuova_altezza);

             

 //carico l'originale

$immagine = imagecreatefromgif($_FILES['file_inviato1']['tmp_name']);   

//metto nella nuova immagine la riduzione dell'originale

imagecopyresized($immagine_temporanea, $immagine,0,0,0,0,$nuova_larghezza, $nuova_altezza, $larghezza_orig, $altezza_orig);

imagedestroy($immagine);

$immagine = $immagine_temporanea;

ob_start();             

imagegif($immagine); // produce l'output  

$imagedata = ob_get_contents(); // prendo l'output catturato e lo metto in una variabile

ob_end_clean(); // arresto la cattura dell'output e svuoto il buffer

$dati_file1= addslashes($imagedata); 

         

$query5_2 = "INSERT INTO immagini_small SET ecc.....
inviato 9 anni fa
stellina
X 0 X

Non ricordo,ma forse qualcuno aveva già avuto questo problema...prova a dare un'occhiata nel forum...

cmq non vorrei sbagliarmi, ma forse avevano risolto con l'utilizzo di imagefilledrectangle:

http://it2.php.net/manual/it/function.imagefilledrectangle.php

o questa:

http://it2.php.net/manual/it/function.imagecolortransparent.php

ma vado molto a memoria...

ciao

Lore

risposto 9 anni fa
Lore
Lore
1
modificato 9 anni fa
X 0 X

Al posto della imagecopyresized() prova ad usare la funzione imagecopyresampled()

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

ti ringrazio per le indicazioni,

ho tentao di risolvere cosi:

$nuova_larghezza = 90;

$nuova_altezza = 68;

//ricavo la dimensione dell'immagine originale

list($larghezza_orig, $altezza_orig, $tipo, $attr) = getimagesize($_FILES['file_inviato1']['tmp_name']);

//creo una nuova immagine che conterrà l'anteprima

$immagine_temporanea = imagecreatetruecolor($nuova_larghezza, $nuova_altezza);

              

//carico l'originale

$immagine = imagecreatefromgif($_FILES['file_inviato1']['tmp_name']);   //VA CAMBIATA A SECONDA DEL TIPO DI FILE

//metto nella nuova immagine la riduzione dell'originale

               

   $trans = imagecolorallocate($immagine_temporanea,255,255,255);

   imagecolortransparent($immagine_temporanea,$trans);

   

              

imagecopyresized($immagine_temporanea, $immagine,0,0,0,0,$nuova_larghezza, $nuova_altezza, $larghezza_orig, $altezza_orig);

   imagetruecolortopalette($immagine_temporanea, true, 256);

   imageinterlace($immagine_temporanea);

            

            

imagedestroy($immagine);

$immagine = $immagine_temporanea;

ob_start(); // Tutto l'output prodotto da questo momento sarà "catturato" da un buffer (e non inviato al browser)

imagegif($immagine); // produce l'output  

$imagedata = ob_get_contents(); // prendo l'output catturato e lo metto in una variabile

ob_end_clean(); // arresto la cattura dell'output e svuoto il buffer

   

ma il problema persiste ...proprio non capisco che cosa succede

Ho provato ad usare anche imagecopyresampled()  ma il problema è sempre lo stesso

risposto 9 anni fa
stellina
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda