Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 imagick或GD合并数组中的图像_Php_Arrays_Merge - Fatal编程技术网

PHP imagick或GD合并数组中的图像

PHP imagick或GD合并数组中的图像,php,arrays,merge,Php,Arrays,Merge,我在谷歌上搜索,但找不到任何解决方案 我需要通过php合并多个png文件。当我像这样声明映像路径时,一切正常: <?php $img1 = new Imagick('face.png'); $img2 = new Imagick('glasses-1.png'); $img1->compositeImage( $img2, imagick::COMPOSITE_DEFAULT, 0, 0 ); $img1->setImageBackgro

我在谷歌上搜索,但找不到任何解决方案

我需要通过php合并多个png文件。当我像这样声明映像路径时,一切正常:

    <?php
    $img1 = new Imagick('face.png');
    $img2 = new Imagick('glasses-1.png');
    $img1->compositeImage( $img2, imagick::COMPOSITE_DEFAULT, 0, 0 );
    $img1->setImageBackgroundColor('transparent');
    $img_wynik = $img1->flattenImages();
    $img_wynik->setImageFormat('png');
    $img_wynik->writeImage( 'avatar.png' );
    header('Content-type: image/png');
    echo $img_wynik;
    ?>
然后将我的测试代码更改为

$img2 = new Imagick ($srcImagesPath)
但它总是给我合并的face.png和数组中的最后一个图像


知道如何构建它吗?

$srcImagesPath
是一个数组,因此需要指定它的元素,而不是传递数组本身。我想你想要:

$img2 = new Imagick ($srcImagesPath[0])


如果已安装GD库(假设已安装):

完成此操作后,您可以使用以下方法在新图像中创建帧:

imagecopymerge()
我会让你把目的地,来源和坐标排序。。。称之为挑战;)

从这里开始,您只需使用imagepng将合成图像输出到文件:

imagepng($compositedImage, $path_to_filesystem_destination);

直接使用命令将图像输出到浏览器,第二个参数将图像保存到文件。

只需在阵列上循环创建新图像,例如使用第一个作为基本图像。foreach工作!谢谢,我需要合并所有图像。此图像将由用户选择,因此我无法声明它们将选择多少。我将从jQuery解析这些信息。我希望你能理解我的纯英语。这不是我需要的。
$image1 = imagefrompng('glasses-1.png');
$image2 = imagefrompng('mouth-1.png');
imagecopymerge()
imagepng($compositedImage, $path_to_filesystem_destination);