首页 > 解决方案 > 提取在 2 个图像之间变化的像素并使用图像魔法转换保存到新的图像,同时保持原始颜色

问题描述

我试图获得 2 个图像之间的差异并将其保存到一个新的图像以更快地传输文件。

但是当使用此命令获得差异时compare -compose src /tmp/.send.png ~/.cache.png .difference.png它可以工作但所有改变的东西都是红色的?我怎样才能使它成为原始颜色或使它不改变图像的颜色?

标签: linuximagemagick

解决方案


不清楚你想要什么结果。以下是 ImageMagick 中的两种不同方式。图 2 中添加了一个蓝色的小方块。

以下是 Unix 语法。Windows 语法略有不同。如果使用 ImageMagick 7,请将 convert 替换为 magick。

输入 1:

在此处输入图像描述

输入 2:

在此处输入图像描述


convert lena.png lena_blue.png \
\( -clone 0,1 -compose difference -composite -colorspace gray \) \
-delete 1 \
\( -clone 0 -fill green1 -colorize 100 \) \
+swap -compose over -composite \
lena_diff.png

以绿色突出差异:

在此处输入图像描述

将图像涂黑,但差异除外:

convert lena.png lena_blue.png \
\( -clone 0,1 -compose difference -composite -colorspace gray -threshold 0 \) \
-delete 1 \
+swap -compose multiply -composite \
lena_diff2.png

在此处输入图像描述


推荐阅读