仅模糊图像的一部分
Blur part of an image only
我只想模糊图像的一部分。模糊的部分总是矩形的,所以我可以很容易地使用下面的命令:
magick source.jpg -region 1000x1000+0+500 -blur 0x20 result.jpg
这可行,但对于大图像来说速度很慢。由于我必须一次又一次地处理数千个文件,这将花费太长时间。
因此,我决定通过将图像缩小和放大到原始大小来进行模糊处理。但是,由于这会使 完整 图像模糊,我已尝试使用以下步骤完成任务:
- 以原图为背景
- 创建原始图像的副本
- 使用down-/upscaling
模糊副本
- 从模糊副本中裁剪出所需区域
- 合成原件和模糊裁剪后的副本
我已经很接近了(我希望如此),但是在合成两个图像时,裁剪后的图像将始终位于原始图像的左上角 - 而不是源图像的原始位置。这是我当前的命令:
magick source.jpg ( -clone 0 -resize 5% -resize 2000% -crop 1000x1000+0+1000 ) -composite result.jpg
我看过in the documentation,使用-crop
操作时会保留原来的canvas大小,使用[=13=时会使用这个大小和位置].但是,这似乎不适用于我的情况。有人知道为什么吗?
我尝试过使用-repage
、-extent
等选项来定义裁剪图片的大小和位置,但至今无济于事。
您可以在 ImageMagick 中使用蒙版图像(任何形状)来完成。虽然我不确定这是否会比您的缩放方法更快。
输入:
掩码:
(注意:模糊发生在蒙版为黑色的地方)
magick lena.jpg -write-mask mask.png -blur 0x3 +write-mask lena_blurred.png
结果:
我会在您的命令中尝试 -flatten,因为它用于图层。
我只想模糊图像的一部分。模糊的部分总是矩形的,所以我可以很容易地使用下面的命令:
magick source.jpg -region 1000x1000+0+500 -blur 0x20 result.jpg
这可行,但对于大图像来说速度很慢。由于我必须一次又一次地处理数千个文件,这将花费太长时间。
因此,我决定通过将图像缩小和放大到原始大小来进行模糊处理。但是,由于这会使 完整 图像模糊,我已尝试使用以下步骤完成任务:
- 以原图为背景
- 创建原始图像的副本
- 使用down-/upscaling 模糊副本
- 从模糊副本中裁剪出所需区域
- 合成原件和模糊裁剪后的副本
我已经很接近了(我希望如此),但是在合成两个图像时,裁剪后的图像将始终位于原始图像的左上角 - 而不是源图像的原始位置。这是我当前的命令:
magick source.jpg ( -clone 0 -resize 5% -resize 2000% -crop 1000x1000+0+1000 ) -composite result.jpg
我看过in the documentation,使用-crop
操作时会保留原来的canvas大小,使用[=13=时会使用这个大小和位置].但是,这似乎不适用于我的情况。有人知道为什么吗?
我尝试过使用-repage
、-extent
等选项来定义裁剪图片的大小和位置,但至今无济于事。
您可以在 ImageMagick 中使用蒙版图像(任何形状)来完成。虽然我不确定这是否会比您的缩放方法更快。
输入:
掩码:
(注意:模糊发生在蒙版为黑色的地方)
magick lena.jpg -write-mask mask.png -blur 0x3 +write-mask lena_blurred.png
结果:
我会在您的命令中尝试 -flatten,因为它用于图层。