Ale*_*pin 6 php transparency gd image antialiasing
我正在尝试使用PHP从另一个图像创建一个图像.这是我的代码:
<?php
$width = 109;
$height = 109;
$image = imagecreatetruecolor($width, $height);
$source_under = imagecreatefrompng('ecloid_under.png');
$black = imagecolorallocate($image, 0x00, 0x00, 0x00);
imagecolortransparent($image, $black);
imagecopy($image, $source_under, 0, 0, 0, 0, $width, $height);
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>
Run Code Online (Sandbox Code Playgroud)
所以我正在加载这个图像 $source_under
并将其复制到透明的空白"画布"图像上.以下是该操作的结果:
可以看出,整个初始图像周围有一种黑色边框.我认为这是因为最初"画布"图像都是黑色的.因此,图像的透明度和抗锯齿有问题.
这不是我第一次有类似的问题,但上次源图像是原因.这一次,在Photoshop中打开它并没有显示任何潜在的问题.
有谁知道如何解决这一问题?
在将原始文件复制到$ image之前,您是否可以尝试在$ image上启用Alpha混合:
imagealphablending($image, true);
Run Code Online (Sandbox Code Playgroud)
第二次尝试是创建一个透明的颜色,并在复制之前用该颜色填充$ image.
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparent);
imagealphablending($image, true);
Run Code Online (Sandbox Code Playgroud)