【问题标题】:Pixelate / blur parts of image using an image mask使用图像蒙版像素化/模糊图像部分
【发布时间】:2019-12-24 15:37:39
【问题描述】:

我需要使用 tif 格式的蒙版图像对图像的某些部分进行像素化。

在 ImageMagick 中有多种选择,例如:


convert -quality 100 source.tif \( -clone 0 -resize 16% -scale 3840x2160! \) \( unsharp_mask.tif \) -composite result.tif

源图像和 unsharp_mask 图像大小相同:3840 x 2160

unsharp_mask 图像除了需要像素化的区域外都是黑色的,在源图像中它们是白色的。

如何使用 GraphicsMagick 做到这一点?

有没有简单的方法可以达到同样的效果?

【问题讨论】:

  • 使用 -scale 16% 而不是 -resize 16% 可能会得到更好的结果

标签: mask blur graphicsmagick pixelate


【解决方案1】:

更新答案

嗯...花了一些时间“到处闲逛”,呃,我的意思是刻苦研究选项,我想出了这个既更快又不需要任何中间文件的方法:

cat - <<EOF | gm batch -prompt off
convert source.tif -resize 8x -scale 400x MPR:pixellated
convert -size 400x400 xc:white  -fill black  -draw "circle 200,200 200,400" MPR:mask
composite source.tif MPR:pixellated MPR:mask result.tif
EOF

它产生与下面相同的结果。如果有人感兴趣,MPR 的意思是“内存程序寄存器”,它基本上是一块有名字的 RAM。

原答案

可能有一个更简单的方法,你可以通过长时间的用餐来解决,但这似乎可以满足我的想法。

这是我的源图片source.tif,它是 400x400px:

我这样像素化它:

gm convert source.tif -resize 8x -scale 400x pixellated.tif

然后我做了一个这样的蒙版——我人为地添加了一个红色轮廓,这样你就可以在 StackOverflow 的白色背景上看到范围:

gm convert -size 400x400 xc:white  -fill black  -draw "circle 200,200 200,400" mask.tif

然后像这样进行最终合成:

gm composite source.tif pixellated.tif mask.tif result.tif

顺便说一句,请参阅 here 了解有关 GraphicsMagickImageMagick 的一些想法。

【讨论】:

  • 感谢您的精彩解释。我必须重做我的旧掩码,因为它们被否定并且不兼容(我认为它与 LZW 压缩有关)但它可以工作。通常我使用 > 2 GB 的大源图像,所以我必须测试性能。无论如何,我很高兴你向我展示了一种与通用汽车合作的方法。谢谢!
猜你喜欢
  • 1970-01-01
  • 2020-05-05
  • 2015-11-26
  • 1970-01-01
  • 2015-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多