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

    upload file png trasparenti

    ciao
    io utilizzo le librerie gd per ridimensionare e poi fare l'upload di immagini, ma quando provo a fare un upload di un immagine in formato png con trasparenza.. mi ricrea un un quadrato nero!
    qualcuno mi sa dire se esistono paramentri particolari ???

    o se sbalio qualcosa nella funzione ??

    function copyImage($srcFile, $destFile, $w, $h, $quality = 75)
    {
    $tmpSrc = pathinfo(strtolower($srcFile));
    $tmpDest = pathinfo(strtolower($destFile));
    $size = getimagesize($srcFile);

    if ($tmpDest['extension'] == "gif" || $tmpDest['extension'] == "jpg")
    {
    // $destFile = substr_replace($destFile, 'jpg', -3);
    $dest = imagecreatetruecolor($w, $h);
    //imageantialias($dest, TRUE);
    } elseif ($tmpDest['extension'] == "png") {
    $dest = imagecreatetruecolor($w, $h);
    //imageantialias($dest, TRUE);
    } else {
    return false;
    }

    switch($size[2])
    {
    case 1: //GIF
    $src = imagecreatefromgif($srcFile);
    break;
    case 2: //JPEG
    $src = imagecreatefromjpeg($srcFile);
    break;
    case 3: //PNG
    $src = imagecreatefrompng($srcFile);
    break;
    default:
    return false;
    break;
    }

    imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $h, $size[0], $size[1]);

    switch($size[2])
    {
    case 1:
    case 2:
    imagejpeg($dest,$destFile, $quality);
    break;
    case 3:
    imagepng($dest,$destFile);
    }
    imagedestroy($src);
    imagedestroy($dest);

    return $destFile;

    }
    Kalton
    -------------------
    www.kalton.it - www.kalton.cavarzere.it

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    257
    Ti ho trovato questo codice in una vecchia discussione, io l'ho adoperato per una gif.


    Se l'immagine e' una png faccio così per ottenere lo sfondo trasparente
    codice:
    Codice PHP:
    $new imagecreatetruecolor$dest_w$dest_h );
                        
    imageAntiAlias($new,true);
    imagealphablending($newfalse);
    imagesavealpha($new,true);
    $transparent imagecolorallocatealpha($new255255255127);
    imagefilledrectangle($new00$dest_w$dest_h$transparent);    
                
    imagecopyresampled$new$img0000$dest_w$dest_h$old_w$old_h ); 

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.