我有一些特定尺寸的图像,比如WxH。我的目标是将其画布尺寸(不缩放图像)增加到这样的尺寸W' xH'那个W'任意N和H&C可被任意整除。被任意的M整除,但两者都是最不可能的。 W'> = W和H'> = H。
我已经搜索了大量的文档,但似乎我没有完全定义我正在寻找的内容。
答案 0 :(得分:1)
这是使用awk的解决方案,但我确信还有很多其他技术。
#!/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
也可用于控制居中和放大。对准。