Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    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

    Codice PHP:
    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$src0000$larghezza_finale$altezza_finaleimageSx($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$src0000$larghezza_finale_thumb$altezza_finale_thumbimageSx($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");

    IN REALTA' SONO REGISTRATO DAL 2001 PERO' MI HANNO BANNATO PER AVER SCRITTO DUE MESSAGGI NELLA SEZIONE ERRATA...CHE RICONOSCENZA!!!

  2. #2
    Codice PHP:
        function img_resize($source$width$height)
            {
            
    //se sto tentando di ingrandire
            
    if ($width>imagesx($source)|| $height>imagesy($source)):
                
    //allora restituisco l'immagine stessa
                
    $tmp_img=$source;
            else:
                
    //controllo se la sorgente è a palette
                
    if (imagecolorstotal($source)!=0):
                    
    $tmp_img=ImageCreate($width,$height);
                    
    //controllo se la sorgente ha pixel transparency
                    
    $srcbg=ImageColorTransparent($source);
                    if (
    $srcbg!=-1):
                        
    //leggo componenti colore trasparente
                        
    $comp=@imagecolorsforindex($source,$srcbg);
                        if (
    $comp!==false):
                            
    //creo il colore nella immagine destinazione
                            
    $bg imagecolorallocate($tmp_img,$comp["red"],$comp["blue"],$comp["green"]);
                            
    //riempio l'intera destinazione con quel colore
                            
    imagefill($tmp_img00$bg);
                            
    //rendo trasparente quello stesso colore
                            
    ImageColorTransparent($tmp_img$bg);
                            
    //disattivo l'alpha blending
                            
    imagealphablending($tmp_imgfalse);
                        endif;
                    endif;
                    
    //ridimensiono l'immagine
                    
    ImageCopyResized($tmp_img,$source,0,0,0,0,$width,$height,imagesx($source),imagesy($source));
                else:
                    
    $tmp_img=ImageCreateTrueColor($width,$height);
                    
    ImageCopyResampled($tmp_img,$source,0,0,0,0,$width,$height,imagesx($source),imagesy($source));
                endif;
            endif;
            
            return 
    $tmp_img;
            } 
    Ciao!
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  3. #3
    grazie
    IN REALTA' SONO REGISTRATO DAL 2001 PERO' MI HANNO BANNATO PER AVER SCRITTO DUE MESSAGGI NELLA SEZIONE ERRATA...CHE RICONOSCENZA!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.