使用 PHP 的 GDlib 图像复制采样时,是否可以保留 PNG 图像透明度?
2022-08-30 07:23:20
以下 PHP 代码段使用 GD 将浏览器上传的 PNG 大小调整为 128x128。它效果很好,除了原始图像中的透明区域被替换为纯色 - 黑色。
即使设置好了,也有些事情不太对劲。imagesavealpha
在重新采样的图像中保留透明度的最佳方法是什么?
$uploadTempFile = $myField[ 'tmp_name' ]
list( $uploadWidth, $uploadHeight, $uploadType )
= getimagesize( $uploadTempFile );
$srcImage = imagecreatefrompng( $uploadTempFile );
imagesavealpha( $targetImage, true );
$targetImage = imagecreatetruecolor( 128, 128 );
imagecopyresampled( $targetImage, $srcImage,
0, 0,
0, 0,
128, 128,
$uploadWidth, $uploadHeight );
imagepng( $targetImage, 'out.png', 9 );