Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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

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 如何使用imagemagick将PNG文件与2个区域合成?_Php_Image_Imagemagick - Fatal编程技术网

Php 如何使用imagemagick将PNG文件与2个区域合成?

Php 如何使用imagemagick将PNG文件与2个区域合成?,php,image,imagemagick,Php,Image,Imagemagick,我有一些文件,比如: 如您所见,在这张png图像中,2或3个区域在一起, 当我想与以下内容组合时: 代码是示例,不适用于此图像 exec("convert 1.png ".$newfile01." -geometry +208+225 -compose DstOver -composite ".$newfile02." -geometry +434+346 -compose DstOver -composite ".$newfile03." -geometry +656+211 -comp

我有一些文件,比如:

如您所见,在这张png图像中,2或3个区域在一起, 当我想与以下内容组合时: 代码是示例,不适用于此图像

exec("convert  1.png  ".$newfile01." -geometry +208+225 -compose DstOver -composite ".$newfile02." -geometry +434+346 -compose DstOver -composite  ".$newfile03." -geometry +656+211 -compose DstOver -composite  ".$result_image);
在将$newfile01与png文件组合后,其他透明区域中很少会包含E

有什么帮助吗?对不起,我的英语不好:

我解决了这个问题。 事实上,当我调整或旋转图像时,它将是白色背景:

exec('convert '.$newfile1.' -resize 325!x440! -rotate -5.9 '.$newfile01.'');
最好的解决方案是$newfile1,在本例中为背景透明的PNG文件,代码为:

-matte -background transparent
因此:

在这种情况下,两个或多个图像重叠在一起不会有任何问题


致以最诚挚的问候。

我想你是说输出图像中的透明区域最终变成了白色,而不是透明的。尝试在输出文件名前添加PNG32:如下面的convert in1.png-混合成的PNG32:outfile.png对于示例我有1.png、2.jpg和3.jpg,imagemagick将1.png与2.jpg合成,另一个透明区域的某些区域将为白色,然后imagemagick将其与3.jpg合成。我的问题是这个区域在3.jpg区域上是白色的:这不是ImageMagick的问题-JPEG文件不能支持透明度。您可以使用不带透明度的JPEG,将白色区域转换为透明,然后另存为支持透明度的PNG。要做到这一点,请在JPEG文件名后添加-透明白色。我的意思是,在复合编号1之后,会有一点其他透明区域,当复合编号2运行时,白色区域在新区域和图像文件02上结束。。。
exec('convert '.$newfile1.' -resize 325!x440! -matte -background transparent -rotate -5.9 '.$newfile01.'');