ImageMagick技术问题:如何以模板图尺寸仅缩放目标图片?
用ImageMagick基于模板图片尺寸缩放目标图片的正确语法
问题场景
你需要以某张模板图片的宽高为基准,缩放另一张目标图片,但当前执行的命令会同时输出两张缩放后的图片,且fx表达式没有读取到模板图的尺寸。当前使用的命令如下:
magick template.jpg image-to-resize.jpg -resize "x%[fx:int(h/2)]" second-image-resized.jpg
环境:Ubuntu 22.04、ImageMagick v7.1.1
解决方案
要让fx读取模板图的尺寸,同时只输出目标图片的缩放结果,可通过提取模板尺寸到变量并移除模板图序列的方式实现:
magick template.jpg -set option:template_h %[h] image-to-resize.jpg -delete 0 -resize "x%[fx:int(template_h/2)]" second-image-resized.jpg
命令解析
-set option:template_h %[h]:将模板图片的高度值存入自定义变量template_h(若需要基于宽度缩放,可替换为%[w])-delete 0:从图片序列中移除第一张图(即模板图),后续仅对目标图片进行处理-resize "x%[fx:int(template_h/2)]":调用模板图的高度变量计算缩放后的目标高度,最终仅输出一张缩放后的目标图片
内容的提问来源于stack exchange,提问作者stalker
相关产品推荐
相关产品推荐

