librerie gd

Ciao, ho scritto questo script per ridimensionare le immagini, ma ho due problemi:

1. se l' immagine č inferiore a $grande giustamente me la lascia della dimensione reale, ma la proporzione della foto č sbagliata, come posso risolvere il problema??

2. se inserisco un immagine in png con il fondo trasparente, non me la salva con il fondo trasparente ma con il fondo nero.

Potreste dare un occhiata a questo codice e farci una correzione??

Grazie mille

$grande = 550; 
$filename = $immagine; 


// Set a maximum height and width 
$width = $grande; 
$height = $grande; 

// Content type 
// header('Content-type: image/jpeg'); 

// Get new dimensions 
list($width_orig, $height_orig) = getimagesize($filename); 

    if ($width_orig > $width OR $height_orig > $height){ 

if ($width && ($width_orig < $height_orig)) { 
   $width = ($height / $height_orig) * $width_orig; 
} else { 
   $height = ($width / $width_orig) * $height_orig; 
} 
         
        }else{ 
    $width = $width_orig; 
$height = $width_orig; 
            } 

// Resample 
$image_p = imagecreatetruecolor($width, $height); 


$formato = getimagesize($filename); 
if( $formato[2] == 2 ){$image = imagecreatefromjpeg($filename);} 
elseif( $formato[2] == 1 ){$image = imagecreatefromgif($filename);} 
elseif( $formato[2] == 3 ){$image = imagecreatefrompng($filename);} 


imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); 

// Output 
if( $formato[2] == 2 ){imagejpeg($image_p, "imgb/articoli/$id/$numero_img.jpg", 100);} 
elseif( $formato[2] == 1 ){imagegif($image_p, "imgb/articoli/$id/$numero_img.gif");} 
elseif( $formato[2] == 3 ){imagepng($image_p, "imgb/articoli/$id/$numero_img.png");}
inviato 9 anni fa
alessio
X 0 X

per la questione ridimensionamento potresti implementare questo codice

il codice va adattato al tuo caso in quanto č stato progettato come metodo x la creazione di una miniatura  di  classe  fileupload-class

//ricavo i dati dell'img

list($width, $height, $type, $attr) = getimagesize($filename);

//se entrambi i valori sono minori dei valori max

if($width<$width_resize and $height<$height_resize)

{

                //assegno i valori attuali della img ai valori di resize

                $width_resize=$width;

   $height_resize=$height;

}

else

{

               //opero ridimensionamento

               $hx=($width_resize*$height)/$width;

   if($hx>$height_resize)

   {

                   $wx=($height_resize*$width)/$height;

      $width_resize=round($wx);

   }

   else

   {

      $height_resize=round($hx);

   }

}

ciao ciao

risposto 9 anni fa
dyd666
X 0 X

Ciao,

ti ringrazio per la risposta,  ho provato le tue modifiche ma non funzionano....  :bye:

risposto 9 anni fa
alessio
X 0 X

pardon alessio .

non č una modifica al tuo codice.....

dal codice scritto č da evincere una possibile logica che deve essere pero adattata al tuo di script

ciao ciao ;-p

risposto 9 anni fa
dyd666
X 0 X

tu riusciresti a risolvermi questi due problemi nel codice che ho inserito??

risposto 9 anni fa
alessio
X 0 X

Aiuto  :-\ vi prego....

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