【发布时间】:2021-11-24 11:40:51
【问题描述】:
我只想模糊图像的一部分。要模糊的部分总是矩形的,所以我可以很容易地使用以下命令:
magick source.jpg -region 1000x1000+0+500 -blur 0x20 result.jpg
这可行,但对于大图像来说速度很慢。由于我必须一次又一次地处理数千个文件,这将花费太长时间。
因此,我决定通过缩小和放大图像回到原始尺寸来进行模糊处理。但是,由于这会使 完整 图像变得模糊,因此我尝试使用以下步骤来完成任务:
- 以原图为背景
- 创建原始图像的副本
- 使用缩小/放大对副本进行模糊处理
- 从模糊副本中裁剪所需区域
- 合成原件和模糊和裁剪的副本
我已经很接近了(我希望如此),但是在合成两张图像时,裁剪后的图像将始终位于原始图像的左上角 - 而不是源图像的原始位置。这是我当前的命令:
magick source.jpg ( -clone 0 -resize 5% -resize 2000% -crop 1000x1000+0+1000 ) -composite result.jpg
我已阅读in the documentation,在使用-crop 操作时将保留原始画布大小,并且在使用-composite 时将使用此大小和位置。但是,这在我的情况下似乎不起作用。有人知道为什么吗?
我曾尝试使用-repage、-extent 和其他选项来定义裁剪图像的大小和位置,但目前无济于事。
【问题讨论】:
-
你试过-flatten吗?
-
@Bonzo 非常感谢,成功了!在
-composite之前添加-flatten使裁剪的部分出现在正确的位置。如果您将此添加为答案,我会接受。
标签: imagemagick