ImageMagick压缩和调整图像的多个条件



我正在尝试制作一个批处理文件来压缩和调整一些图像的大小。它们是JPG和PNG。文件大小不一,但我只想修改大文件。

如果可能的话,我想知道我正在研究的每个选项的答案。

选项1:简单

正如上面的描述,我使用了一些基本的命令来实现这一点。

@echo off
for %%f IN (*.jpg *.png) DO magick mogrify -quality 70 -resize 960x540^> "%%f" "%%f"

我认为问题出在^>。我只希望它能调整较大文件的大小,并适应最小的尺寸。然而,我找不到同时满足这两个条件的方法。此外,我不能让>工作(所以我不确定我是否偏离轨道)。

选项2:复杂

这个家伙完成了一个相当不错的分析,调整(和压缩)图像的最佳方法。这让我把它加入到我的代码中来创建…

@echo off
for %%f IN (*.jpg *.png) DO magick mogrify -filter Triangle -define filter:support=2 
-thumbnail 500 -unsharp 0.25x0.08+8.3+0.045 -dither None -posterize 136 -quality 82 
-define jpeg:fancy-upsampling=off -define png:compression-filter=5 
-define png:compression-level=9 -define png:compression-strategy=1 
-define png:exclude-chunk=all -interlace none -colorspace sRGB "%%f" "%%f"

[为了更好地观看,手动刹车。]

我唯一不能在这里工作的是条件只改变文件大于500像素(>)。这可能是我上面遇到的相同问题。

我希望这是一个简单的解决方案。我确实试着去看文档,但我没有发现任何特别有用的东西(除了告诉我条件的代码之外)。

感谢你的帮助。

在DOS Windows下的Imagemagick中,请参阅https://legacy.imagemagick.org/Usage/windows/#conversion,其中显示:

所有不在双引号中的shell保留字符必须是如果在字面意义上使用,则使用'^'(插入符号或旋转符号)进行转义(即没有达到其通常的目的)。这些保留壳人物:"和 ;', '|', '(', ')', '& lt;"、"祝辞 ;', '^'.

这尤其意味着:特殊字符'>'(用于调整大小)几何)需要使用'^'进行转义。例如-resize 100x100^>。

同样,'内部调整大小'标志'^'需要加倍成为'^^'。

所以你可以使用双引号(没有转义)作为:

-resize "960x540^>"

或者可以转义^和>

-resize 960x540^^^>

相关内容

  • 没有找到相关文章

最新更新