Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP转换为透明并不能真正使其透明_Php_Image_Transform_Photo_Photoshop - Fatal编程技术网

PHP转换为透明并不能真正使其透明

PHP转换为透明并不能真正使其透明,php,image,transform,photo,photoshop,Php,Image,Transform,Photo,Photoshop,我试图使imageA.png透明,然后使用imagecopy函数将其合并到另一个完全透明的图像中,但合并后,imageA.png变成白色背景,而不是透明的 我相信这是因为它没有正确地转换为透明 这是我用过的 这是一个独立的文件,用于将图像转换为透明图像,它可以工作: $img = imagecreatefrompng("imageA.png"); $white = imagecolorallocate($img, 255, 255, 255); imagecolortransparent($im

我试图使imageA.png透明,然后使用imagecopy函数将其合并到另一个完全透明的图像中,但合并后,imageA.png变成白色背景,而不是透明的

我相信这是因为它没有正确地转换为透明 这是我用过的 这是一个独立的文件,用于将图像转换为透明图像,它可以工作:

$img = imagecreatefrompng("imageA.png");
$white = imagecolorallocate($img, 255, 255, 255);
imagecolortransparent($img, $white);
header('Content-Type: image/png');
imagepng($img);
这个是将上面的结果和另一个透明图像合并

$src = imagecreatefrompng("imageA_transparent.png");
$dest = imagecreatefrompng('another_transparent_image.png');
imagesavealpha($dest, true);
imagealphablending($dest, true);

imagecopy($dest, $src, 0, 0, 0, 0, 400, 400);
结果是imageA_transparent.png变为白色背景,而它在第二个使用的透明图像上实际上是透明的另一个_transparent_image.png

我试着使用普通的Photoshop透明图像,它没有问题

我尝试使用带有$src的imagesavealpha和ImageAlpha混合,但没有效果

在使用imagecopy之前,两个图像都是正确透明的
**最后,当我试图打开imageA_transparent.png时,php生成的透明图像在photoshop中显示为白色背景和锁定层,这意味着PHP没有正确地将其转换为transparent/png我相信解决方案:我使用Imagick convert作为PHP转换为transparent convert的替代方案,一切都很好,现在我想要Imagick的替代方案,因为我不想要任何基于框架的东西,不管怎样,是否可以在不使用imagick的情况下进行适当的转换以去除白色背景,只是基于PHP的functionsTry使用imagecolorallocate分配第一种颜色透明像素。分配白色作为第二个。