Ik ben een scriptje aan het maken wat afbeeldingen upload in een map en automatisch een thumbnail aanmaakt. Als ik een png upload dan wordt de transparantie zwart. Onderstaand het script wat ik gebruik, weer iemand hoe ik dit kan fixen? Ik ben zelf overigens een enorme PHP beginner, dus misschien is het wel een domme vraag :P.
---------------------------------------------------------------------------------------
<?php
error_reporting(0);
$change="";
$abc="";
$afb_size=1000; //de breedte van de grote afbeeldingen
$thumb_size=100; //de grootste waarde van de thumb, hang er van af of de afbeelding breder of hoger is
define ("MAX_SIZE","1000");
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);
if ($width > $afb_size){
$afb_size=1000;}else{
$afb_size=$width; }
if ($width > $height){
if ($afb_size > $width){$newwidth= $width;}else{$newwidth= $afb_size;}
$newheight=($height/$width)*$newwidth;
$tmp=imagecreatetruecolor($newwidth,$newheight);
$newwidth1=$thumb_size;
$newheight1=($height/$width)*$newwidth1;
$tmp1=imagecreatetruecolor($newwidth1,$newheight1);
}else{
if ($afb_size > $height){$newheight= $height;}else{$newheight= $afb_size;}
$newwidth=($width/$height)*$newheight;
$tmp=imagecreatetruecolor($newwidth,$newheight);
$newheight1=$thumb_size;
$newwidth1=($width/$height)*$newheight1;
$tmp1=imagecreatetruecolor($newwidth1,$newheight1);
}
imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
imagecopyresampled($tmp1,$src,0,0,0,0,$newwidth1,$newheight1,$width,$height);
$date = date('Ymd_His_');
$filename = "images/".$date. $_FILES['file']['name'];
$filename1 = "images/".$date. $_FILES['file']['name'];
//voegt '_thumb' toe aan de bestandsnaam van de thumbnail
$filename1 = str_replace(".","_thumb.",$filename1);
imagejpeg($tmp,$filename,100);
imagejpeg($tmp1,$filename1,100);
imagedestroy($src);
imagedestroy($tmp);
imagedestroy($tmp1);
}}
}
//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 class="msgdiv">Image Uploaded Successfully!</div>';
}
?>
2.302 views