据我所知, 在* 执行imagecolorallocatealpha() 之前 ,您需要将混合模式设置为false
,将save alpha
channel标志设置为。true
*
<?phppublic function getImageResized($image, int $newWidth, int $newHeight) { $newImg = imagecreatetruecolor($newWidth, $newHeight); imagealphablending($newImg, false); imagesavealpha($newImg, true); $transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127); imagefilledrectangle($newImg, 0, 0, $newWidth, $newHeight, $transparent); $src_w = imagesx($image); $src_h = imagesy($image); imagecopyresampled($newImg, $image, 0, 0, 0, 0, $newWidth, $newHeight, $src_w, $src_h); return $newImg;}?>
更新 :此代码仅在不透明度= 0的背景透明上工作。如果图像的0 <不透明度<100,则为黑色背景。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)