我使用PHP和GD庫製作縮略圖,但是我的代碼將png透明度轉化爲純黑色,是否有解決方案來改進我的代碼?imagecreatefrompng()使黑色背景而不是透明?
這是我的PHP縮略圖製造商代碼:
function cropImage($nw, $nh, $source, $stype, $dest) {
$size = getimagesize($source);
$w = $size[0];
$h = $size[1];
switch($stype) {
case 'gif':
$simg = imagecreatefromgif($source);
break;
case 'jpg':
$simg = imagecreatefromjpeg($source);
break;
case 'png':
$simg = imagecreatefrompng($source);
break;
}
$dimg = imagecreatetruecolor($nw, $nh);
$wm = $w/$nw;
$hm = $h/$nh;
$h_height = $nh/2;
$w_height = $nw/2;
if($w> $h) {
$adjusted_width = $w/$hm;
$half_width = $adjusted_width/2;
$int_width = $half_width - $w_height;
imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h);
} elseif(($w <$h) || ($w == $h)) {
$adjusted_height = $h/$wm;
$half_height = $adjusted_height/2;
$int_height = $half_height - $h_height;
imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h);
} else {
imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h);
}
imagejpeg($dimg,$dest,100);
}
謝謝
使用圖像裁剪http://stackoverflow.com/questions/43409133/solved-png-image-issue-php-background-black-backround-on-resized-images – 2017-04-14 10:03:26