如何使用Imagick合并和遮罩图像?

2024-04-01

我对图像处理知之甚少,对所使用的术语更是知之甚少,所以请耐心等待。

Basically, I want to merge two images together where one of them will act as a mask. That image looks something like this:
Example
Where the blue and yellow background are both transparent in reality.

该图像被用作常规照片的蒙版。照片中“突出”到圆圈之外的部分需要被“裁剪”(使其不可见),而内部仍然可见。
因此,蓝色区域中的所有内容都是不可见的,黄色区域中的所有内容都是可见的。

老实说,我不知道如何去做,所以任何帮助将不胜感激!

Edit:
我使用 Imagick 的 API 版本,而不是命令行版本

Edit:
为了了解我想要实现的目标,这里有一个例子。

The input images are thus:
enter image description here
This is the mask image, always the same

enter image description here
This is an example of a picture, dynamic

enter image description here
This is what the end result should look like


所以,最后,这应该可以满足您的需要:

原图:

不透明蒙版:

Overlay:

Output:

代码:

<?php
$base = new Imagick('U0R4F.png');
$mask = new Imagick('mask.png');
$over = new Imagick('3ulkM.png');

// Setting same size for all images
$base->resizeImage(274, 275, Imagick::FILTER_LANCZOS, 1);

// Copy opacity mask
$base->compositeImage($mask, Imagick::COMPOSITE_DSTIN, 0, 0, Imagick::CHANNEL_ALPHA);

// Add overlay
$base->compositeImage($over, Imagick::COMPOSITE_DEFAULT, 0, 0);

$base->writeImage('output.png');
header("Content-Type: image/png");

echo $base;
?>

我希望是现在! 注意:在您的示例中,您似乎缩小了基本图像的比例,而我没有(我的目标只是展示遮罩是如何完成的)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用Imagick合并和遮罩图像? 的相关文章

随机推荐

  • 在SSIS中使用执行进程任务和WinSCP进行SFTP传输

    我有一个User file txt文件放置在 WinSCP 根文件夹 USERDATA 中 我正在尝试将其下载到给定位置C User Local Executable C Program Files x86 WinSCP WinSCP ex
  • React 组件安装两次

    在我的 React Redux ReactRouterV4 应用程序的一小部分中 我有以下组件层次结构 Exhibit Parent ExhibitOne ExhibitTwo ExhibitThree 在 Exhibit 的子级中 还可以
  • 使用远程执行配置程序时,当 instance_count 大于 2 时,Terraform 会卡住

    我正在尝试使用 null resource 通过 Terraform 的远程执行配置程序来配置多个 Windows EC2 实例 terraform v Terraform v0 12 6 provider aws v2 23 0 prov
  • 如何使用 WriteEndElement 检查元素的名称

    我正在写 xmlXmlWriter http msdn microsoft com en gb library system xml xmlwriter aspx 我的代码有很多这样的部分 xml WriteStartElement pay
  • Kafka Consumer Group Id 和消费者重新平衡问题

    我正在使用卡夫卡0 10 0和动物园管理员3 4 6在我的生产服务器中 我有 20 个主题 每个主题大约有 50 个分区 我总共有 100 个消费者 每个消费者订阅了不同的主题和分区 所有消费者都具有相同的 groupId 那么 如果针对特
  • Final 字段和匿名类

    我仍然对有关匿名类和最终字段的解释不满意 有大量问题试图解释明显的问题 但我还没有找到所有问题的答案 假设以下代码 public void method final int i int j final int z 6 final int x
  • 如何在 SearchView/Widget 调用的搜索过程中传递额外的变量?

    我成功地使用操作栏中的搜索小部件来执行以下搜索本指南 http developer android com guide topics search search dialog html 搜索很好 但我想知道如何在搜索中传递其他变量 同一个指
  • PHP 中的类未注册错误

    我们创建了一个 C 类库程序集 并将其设置为 COM 可见 以便能够从 PHP 调用其方法 这曾经运行良好 但现在我们想将其安装在 Windows Server 2008 服务器上 并且不断遇到 类未注册 错误 为了排除任何依赖性问题 我用
  • 有没有一种简单的方法可以用 Pygame 制作和保存动画?

    我制作了一个非常简单的分形生成器 可以打印出每个步骤 我想把它放在我所做的演示中 我用来制作演示的工具显然不支持 pygame 有什么方法可以将其保存为视频吗 最好是动画 gif 等 http visvis googlecode com h
  • 让 CMake 将生成的二进制文件与资产一起放入特定的目录结构中

    我的项目的目录结构基本如下 root src 根 资产 根 库 我目前已将 CMake 设置为编译源代码 编译库 然后通过从根目录调用 make 来链接它们 然后 我必须手动将可执行文件移动到原始资产目 录中以使其运行 因为这是它期望的位置
  • params.getBehaviour() 返回空值

    我正在玩新的 Android 设计库 CollapsingToolbarLayout 工作得很好 但是 我无法将工具栏的默认状态设置为 折叠 我正在尝试实施所示的解决方案here https stackoverflow com questi
  • 无法确定表达式错误的序列化信息

    我得到一个Unable to determine the serialization information for the expression PlaceManager pm gt pm FreePlaces get Item inde
  • 在 Jetty WebAppContext 之间实现 SSO

    我正在开发的 Jetty 9 应用程序会自动扫描一组 JarFiles 中的 web xml 然后以编程方式将包含的 Web 应用程序导入为 WebAppContext 我需要在各个 Web 应用程序之间实现单点登录 如以下 Jetty 6
  • 在Java中编码base64并在C#中解码

    我在java和c 之间遇到了base64问题 我从java urlconnection发送编码字符串到asp net处理程序 我比较两个字符串 在java中从字节数组生成的字符串和在asp net第一次解码中接收的字符串相同 但解码后 c
  • 从套接字到套接字的零分配复制

    假设我们有一个套接字连接 我们称其为c1 我们接受消息的地方 我们还有 N 个其他套接字连接 我们将写入完全相同的消息 为了确定我们希望它写入哪个连接 我们只需要读取其中的前几个字节c1 但是套接字上剩余的字节不需要加载到java堆中 只需
  • Javascript 解密 aes-gcm 不起作用,但在 Python 中它可以工作

    我想将一个小型 python 库移植到 JavaScript 在 Node JS 中运行 我收到一条加密消息 初始化向量和密钥 在 python3 中 这些是导入 from cryptography hazmat primitives ci
  • java中的多播

    我正在尝试编写一个简单的多播试验 我使用了标准代码 发送者和接收者 我尝试了一些不同的标准代码 看来接收代码停留在接收状态 就好像没有接收到任何东西一样 接收端 byte b new byte 3 DatagramPacket dgram
  • WCF DataContract 与 DataContract 接口

    WCF 新手 DataContact类可以继承Interface吗 eg DataContract Namespace public class VesselSequence IVesselSequence DataMember publi
  • 使用 Gattle 向 ActiveMQ 发布消息

    我一直在使用Gatling将消息发布到 ActiveMq 服务器 我明白了 java lang SecurityException 无效的用户名 null 或空 不过我使用有效的用户名和密码 这是我的测试代码 抛出了异常 任何有关如何解决此
  • 如何使用Imagick合并和遮罩图像?

    我对图像处理知之甚少 对所使用的术语更是知之甚少 所以请耐心等待 Basically I want to merge two images together where one of them will act as a mask That