imagemagick - 打印图像与imagemagick不同的像素值?
问题描述
有没有一种简单的方法可以使用 imagemagick 打印两个图像不同的像素值?
为了清楚起见,我想知道那个像素的值是什么,以及它的坐标。从哪个图像中获取无关紧要,因为我可以简单地交换它们以获得正确的图像。
解决方案
让我们制作两个图像,宽 3 像素,高 1 像素:
convert xc:red xc:lime xc:blue +append 1.png
convert 1.png -flop 2.png
如果我们执行以下操作,我们可以使两个图像中任何相同的像素变得透明:
convert {1,2}.png -compose changemask -composite mask.png # Note that {1,2}.png is just bash shorthand for "1.png" "2.png"
如果我们重新排序输入图像:
convert {2,1}.png -compose changemask -composite mask.png # Note that {2,1}.png is just bash shorthand for "2.png" "1.png"
因此,我假设您想要上述内容,但采用文本格式,透明像素被抑制:
convert {1,2}.png -compose changemask -composite txt: | grep -v ",0)"
输出
# ImageMagick pixel enumeration: 3,1,65535,srgba
0,0: (65535,0,0,65535) #FF0000FF red
2,0: (0,0,65535,65535) #0000FFFF blue
请注意,如果您想允许图像之间存在微小差异,您可以添加一些“模糊因子”。因此,如果您希望 rgb(0,100,200) 被认为足够接近等于 rgb(3,96,205),您可以-fuzz 5
在命令的开头添加。
推荐阅读
- python - 如何在一个类的实例上调用 list() 时让一个类返回一个列表
- android - 无法生成签名的 apk - TaskExecutionException 失败
- sql-server - EF Core - 在列表查询结果中包含对话中的最新消息
- ruby-on-rails - 邪恶的pdf样式没有出现
- c# - 弹性搜索客户端 NEST vs Curl vs HttpWebRequest
- list - 在 Scheme 中使用 map 编写矩阵的点积
- python - Pydub 找不到 ffprobe
- c# - 在 C# 的不同项目中使用命名空间
- sql - 如何选择一个表中共存的ID(多对多)
- java - 我想让 2d 随机数数组有错误:不兼容的类型:int 无法转换为 int[]