通过可被N整除的数字增加图像画布

时间:2016-08-14 21:26:54

标签: imagemagick imagemagick-convert

我有一些特定尺寸的图像,比如WxH。我的目标是将其画布尺寸(不缩放图像)增加到这样的尺寸W' xH'那个W'任意N和H&C可被任意整除。被任意的M整除,但两者都是最不可能的。 W'> = W和H'> = H。

我已经搜索了大量的文档,但似乎我没有完全定义我正在寻找的内容。

1 个答案:

答案 0 :(得分:1)

这是使用的解决方案,但我确信还有很多其他技术。

#!/bin/bash

N=4
M=5
FILENAME="rose:"

WIDTH=$(identify -format %w "${FILENAME}" | awk -v N=$N '{ m = $1 % N; d = int($1 / N) + 1; printf "%d", (m==0)? $1 : d * N}')
HEIGHT=$(identify -format %h "${FILENAME}" | awk -v M=$M '{ m = $1 % M; d = int($1 / M) + 1; printf "%d", (m==0)? $1 : d * M}')

convert "${FILENAME}" -extent "${WIDTH}x${HEIGHT}" /tmp/output.png

这可以通过阅读FILENAME指标来计算,并使用awk计算 next 任意可分性 - 如果尚未可分割的话。然后将新的宽度/高度传递给-extent运算符,这将增加画布大小而不调整图像大小/缩放。 -gravity也可用于控制居中和放大。对准。

相关问题