您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用PHP的GDlib imagecopy重新采样时,能否保留PNG图像的透明度?

使用PHP的GDlib imagecopy重新采样时,能否保留PNG图像的透明度?

imagealphablending( $targetImage, false );
imagesavealpha( $targetImage, true );

为我做了。谢谢ceejayoz。

请注意,目标图像需要Alpha设置,而不是源图像。

编辑:完整的替换代码。另请参见下面的答案及其评论。不能保证这是完美的,但确实满足了我的需求。

$uploadTempFile = $myField[ 'tmp_name' ]
list( $uploadWidth, $uploadHeight, $uploadType ) 
  = getimagesize( $uploadTempFile );

$srcImage = imagecreatefrompng( $uploadTempFile );

$targetImage = imagecreatetruecolor( 128, 128 );   
imagealphablending( $targetImage, false );
imagesavealpha( $targetImage, true );

imagecopyresampled( $targetImage, $srcImage, 
                    0, 0, 
                    0, 0, 
                    128, 128, 
                    $uploadWidth, $uploadHeight );

imagepng(  $targetImage, 'out.png', 9 );
php 2022/1/1 18:19:30 有496人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶