• User Attivo

    Problema con le immagini con fondo trasparente

    Ciao ragazzi,
    Ho questo grossissimo problema,
    Sto creando un sito di raccolta di comuni della la mia zona, il problema è che la maggior parte dei loghi di questi comuni ( formati gif e png) hanno lo sfondo trasparente.

    Ora non ho la piu pallida idea ci come mantenere questo sfondo trasparente (qualora ci fosse) nel ridimensionamento dei loghi...perchè durante il ridimensionamento la parte trasparente..mi diventa bianca o nara.

    Questo è lo script che uso... spero che qualcuno riesca ad "illuminarmi" perchè non ci capisco piu nulla...grazie davvero

    
    function crea_immagine ($file_upload,$path,$dest_temporanea,$larghezza_massima,$altezza_massima,$dest_finale,$fare_thumb,$larghezza_massima_thumb,$altezza_massima_thumb,$dest_finale_thumb) 
    { 
    if ( $_FILES[$file_upload]['type'] == "image/gif") { $compressione = 85;  $ext="gif"; $funzione="imagecreatefromgif";  $funzione2="imagegif";} 
    elseif ( $_FILES[$file_upload]['type'] == "image/png") { $compressione = 9;  $ext="png"; $funzione="imagecreatefrompng";  $funzione2="imagepng";} 
    elseif ( $_FILES[$file_upload]['type'] == "image/x-png") { $compressione = 9;  $ext="png"; $funzione="imagecreatefrompng";  $funzione2="imagepng";} 
    elseif ( $_FILES[$file_upload]['type'] == "image/pjpeg") { $compressione = 85;  $ext="jpg"; $funzione="imagecreatefromjpeg"; $funzione2="imagejpeg";} 
    $nome_temp=date ("ymdhis"); 
    move_uploaded_file($_FILES[$file_upload]['tmp_name'],"$path/$dest_temporanea/$nome_temp.$ext") or die ("Non pubblica $_FILES[$file_upload]['tmp_name']") ; 
    $imagesize=GetImageSize("$path/$dest_temporanea/$nome_temp.$ext"); 
    if ( $imagesize[0] > $imagesize[1]) 
    { 
    if ( $imagesize[0] > $larghezza_massima ) 
    { $larghezza_finale = $larghezza_massima; $altezza_finale = $imagesize[1]/($imagesize[0]/$larghezza_massima);  } 
    else { $larghezza_finale = $imagesize[0]; $altezza_finale= $imagesize[1];} 
    } 
    else 
    { 
    if ( $imagesize[1] > $altezza_massima ) 
    { $altezza_finale = $altezza_massima; $larghezza_finale = $imagesize[0]/($imagesize[1]/$altezza_massima); } else { $larghezza_finale = $imagesize[0]; $altezza_finale= $imagesize[1];} 
    } 
    
    $dest_finale = "$path/$dest_finale.$ext"; 
    $thumb =  imageCreateTrueColor ($larghezza_finale, $altezza_finale) or die("Impossibile creare l immagine"); 
    $src = $funzione("$path/$dest_temporanea/$nome_temp.$ext") or die ("Impossibile aprire l'immagine originale"); 
    imagecopyresampled ($thumb, $src, 0, 0, 0, 0, $larghezza_finale, $altezza_finale, imageSx($src), imageSy($src)) or   die("Impossibile ridimensionare l'immagine"); 
    $funzione2($thumb, $dest_finale, $compressione) or   die("Impossibile salvare l immagine"); 
    
    if ( $fare_thumb == "si") 
    { 
    if ( $imagesize[0] > $imagesize[1]) 
    { 
    if ( $imagesize[0] > $larghezza_massima_thumb ) 
    { $larghezza_finale_thumb = $larghezza_massima_thumb; $altezza_finale_thumb = $imagesize[1]/($imagesize[0]/$larghezza_massima_thumb);  } 
    else { $larghezza_finale_thumb = $imagesize[0]; $altezza_finale_thumb= $imagesize[1];} 
    } 
    else 
    { 
    if ( $imagesize[1] > $altezza_massima_thumb ) 
    { $altezza_finale_thumb = $altezza_massima_thumb; $larghezza_finale_thumb = $imagesize[0]/($imagesize[1]/$altezza_massima_thumb); } else { $larghezza_finale_thumb = $imagesize[0]; $altezza_finale_thumb= $imagesize[1];} 
    } 
    $dest_finale_thumb = "$path/$dest_finale_thumb.$ext"; 
    $thumb =  imageCreateTrueColor ($larghezza_finale_thumb, $altezza_finale_thumb) or die("Impossibile creare l immagine"); 
    $src = $funzione("$path/$dest_temporanea/$nome_temp.$ext") or die ("Impossibile aprire l'immagine originale"); 
    imagecopyresampled ($thumb, $src, 0, 0, 0, 0, $larghezza_finale_thumb, $altezza_finale_thumb, imageSx($src), imageSy($src)) or   die("Impossibile ridimensionare l'immagine"); 
    $funzione2($thumb, $dest_finale_thumb, $compressione) or   die("Impossibile salvare l immagine"); 
    } 
    
    unlink ("$path/$dest_temporanea/$nome_temp.$ext"); 
    }