Gå til innhold

Gjennomsiktige GIF-bilder


Anbefalte innlegg

Jeg bruker scriptet under, men når jeg bruker et GIF-bilde som inneholder gjennomsiktige piksler, blir disse pikslene svarte. Skulle helst vært hvite :roll:

 

<?php
header("Content-type: image/jpeg");

$w = $_GET['w'];
$h = $_GET['h'];
$id = $_GET['id'];
$type = $_GET['type'];
$proportional = TRUE;
if($type=="mms" || $type=="MMS")
{
$proportional = TRUE;
}
if($type=="bakgrunn")
{
$proportional = FALSE;
}

require("mysql.php");
require("config.php");

$sql = mysql_query("SELECT * FROM tabell WHERE id='$id'");
$array = mysql_fetch_array($sql);

$image = "../".$mms_dir."/".$array['url'];

function sizeImage($image, $w, $h, $proportional) {
   if (!$attr = getimagesize($image)) {
       trigger_error("GD: Image does not exist.  Must be gif, jpeg, or png!",E_USER_ERROR);
   }
   
   switch ($attr[2]) {
       case 1:
           $image = imagecreatefromgif($image);
           break;
       case 2:
           $image = imagecreatefromjpeg($image);
           break;
       case 3:
           $image = imagecreatefrompng($image);
           break;
       default:
 	header("Content-type: text/html");
           trigger_error("GD: Image type wrong.  Must be gif, jpeg, or png!",E_USER_ERROR);
   }
   if ($proportional) {
       if ($attr[0]<$attr[1]){
           $w = $h * ($attr[0]/$attr[1]);
       }
       else{
           $h = $w / ($attr[0]/$attr[1]);
         }   
   }
   $newimage = imagecreatetruecolor($w,$h);
   imagecopyresampled($newimage, $image, 0, 0, 0, 0, $w, $h, $attr[0], $attr[1]);
   imagejpeg($newimage);
   imagedestroy($image);
   imagedestroy($newimage);

}
sizeImage($image, $w, $h, $proportional);
?>

Endret av simenss
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...