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

    Trasparenza immagine png/gif in form di resize

    Salve, in questo codice che permette il resize delle immagini vorrei preservare la trasparenza per le immagini png e gif caricate che invece vengono mostrate con sfondo nero.

    codice:
    error_reporting(0);
    
    $change="";
    $abc="";
    
    
    
    
     define ("MAX_SIZE","500");
     function getExtension($str) {
             $i = strrpos($str,".");
             if (!$i) { return ""; }
             $l = strlen($str) - $i;
             $ext = substr($str,$i+1,$l);
             return $ext;
     }
    
    
     $errors=0;
      
     if($_SERVER["REQUEST_METHOD"] == "POST")
     {
         $image =$_FILES["file"]["name"];
        $uploadedfile = $_FILES['file']['tmp_name'];
    
    
         if ($image) 
         {
         
             $filename = stripslashes($_FILES['file']['name']);
         
              $extension = getExtension($filename);
             $extension = strtolower($extension);
            
            
     if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) 
             {
            
                 $change='<div class="msgdiv">Unknown Image extension </div> ';
                 $errors=1;
             }
             else
             {
    
    
     $size=filesize($_FILES['file']['tmp_name']);
    
    
    
    
    if ($size > MAX_SIZE*1024)
    {
        $change='<div class="msgdiv">You have exceeded the size limit!</div> ';
        $errors=1;
    }
    
    
    
    
    if($extension=="jpg" || $extension=="jpeg" )
    {
    $uploadedfile = $_FILES['file']['tmp_name'];
    $src = imagecreatefromjpeg($uploadedfile);
    
    
    }
    else if($extension=="png")
    {
    $uploadedfile = $_FILES['file']['tmp_name'];
    $src = imagecreatefrompng($uploadedfile);
    
    
    }
    else 
    {
    $src = imagecreatefromgif($uploadedfile);
    }
    
    
    echo $scr;
    
    
    list($width,$height)=getimagesize($uploadedfile);
    
    
    
    
    $newwidth=60;
    $newheight=($height/$width)*$newwidth;
    $tmp=imagecreatetruecolor($newwidth,$newheight);
    
    
    $newwidth1=128;
    $newheight1=($height/$width)*$newwidth1;
    $tmp1=imagecreatetruecolor($newwidth1,$newheight1);
    
    
    $newwidth2=100;
    $newheight2=($height/$width)*$newwidth2;
    $tmp2=imagecreatetruecolor($newwidth2,$newheight2);
    
    
    $newwidth3=80;
    $newheight3=($height/$width)*$newwidth3;
    $tmp3=imagecreatetruecolor($newwidth3,$newheight3);
    
    
    imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
    
    
    imagecopyresampled($tmp1,$src,0,0,0,0,$newwidth1,$newheight1,$width,$height);
    
    
    imagecopyresampled($tmp2,$src,0,0,0,0,$newwidth2,$newheight2,$width,$height);
    
    
    imagecopyresampled($tmp3,$src,0,0,0,0,$newwidth3,$newheight3,$width,$height);
    
    
    $filename = "images/". $_FILES['file']['name'];
    
    
    $filename1 = "images/small/". $_FILES['file']['name'];
    
    
    $filename2 = "images/100/". $_FILES['file']['name'];
    
    
    $filename3 = "images/80/". $_FILES['file']['name'];
    
    
    
    
    
    
    imagejpeg($tmp,$filename,100);
    
    
    imagejpeg($tmp1,$filename1,100);
    
    
    imagejpeg($tmp2,$filename2,100);
    
    
    imagejpeg($tmp3,$filename3,100);
    
    
    imagedestroy($src);
    imagedestroy($tmp);
    imagedestroy($tmp1);
    imagedestroy($tmp2);
    imagedestroy($tmp3);
    }}
    
    
    }
    
    
    //If no errors registred, print the success message
     if(isset($_POST['Submit']) && !$errors) 
     {
     
       // mysql_query("update {$prefix}users set img='$big',img_small='$small' where user_id='$user'");
         $change='<div>Image Uploaded Successfully!</div>';  }


    Grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Basta cercare, questo è il primo link che ho trovato digitando "php png transparent black"
    http://stackoverflow.com/questions/2...of-transparent

    ma ne trovi tanti altri

  3. #3
    Ciao, grazie per la risposta. Avevo gia trovato questi risultati, ma non sono riuscito ad applicarli nel mio caso, per questo motivo avrei bisogno di aiuto piu dettagliato, nel senso, indicarmi quale pezzo sostituire o aggiungere nel mio codice.

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.