首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多张图片合并为一个

将多张图片合并为一个
EN

Stack Overflow用户
提问于 2015-12-25 21:10:24
回答 3查看 2.6K关注 0票数 2

让我们假设我想要创建一个脸生成器,在这里,我将设计几张脸的形状,耳朵,鼻子,嘴,头发的图片。考虑到这些图片的组合,我如何在PHP中创建一个新图片?例如,一个简化的版本:

有face1.png,face2.png,nose1.png和nose2.png。我如何以编程方式将face1.png与nose2.png合并,以便结果图片能够保存这两张图片的内容?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-26 19:39:44

有一个函数名为影像机。此函数使用源映像覆盖目标映像的一部分。给定的部分指定为参数。在您告诉我这不能解决您的问题之前,我必须补充,如果像素是透明的,目标图像中的像素不会被源图像的像素覆盖。您需要在源图片上使用成象共混图像遮挡,如下所示:

代码语言:javascript
复制
public static function experimental($images, $width, $height, $dest = null) {

        $index = 0;

        if ($dest === null) {
            $dest = $images[$index++];
        }

        while ($index < count($images)) {
            imagealphablending($images[$index], true);
            imagesavealpha($images[$index], true );
            imagecopy($dest, $images[$index++], 0, 0, 0, 0, $width, $height);
        }

        return $dest;
    }

如果我们有这两张照片:

其结果将是:

票数 1
EN

Stack Overflow用户

发布于 2015-12-25 21:25:17

基本上有三种选择: GD、开罗或ImageMagic。如果有可用的话,我建议使用Imagick类。如果不是,ImageMagick通过PHP调用。如果没有,GD可能就足够了。

这取决于您的服务器配置,其中哪些是可用的,哪些需要安装额外的包。

在组合图像的Imagick文档中有一个非常简单的示例:https://secure.php.net/manual/en/imagick.compositeimage.php

我还找到了GD:将两个PNG图像与PHP库合并的示例

票数 2
EN

Stack Overflow用户

发布于 2015-12-25 21:17:54

你真的想用PHP来做吗?好的。

1)可以使用GD库进行图像处理。2)您可以使用图像PHP包装器-- i魔术。

但我认为你应该在客户端使用画布。为了保存结果,您可以将画布(或分离的层/图片)的base64 png图像表示发送到后端。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34466434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档