codecamp

ImageMagick 图像定位中的偏移

我们通过一些例子来说明 geometry 参数中的 offsets。使用它的一个典型情形是在 ‑region 这个选项中。‑region 跟在一些其它的命令后,用于指定一块矩形区域。所以,你除了需要指定这个矩形区域的宽和高,还需要指定它的一个起始点(左上角的点)。下面的第一个例子中,我们指定了一个 100×200 的区域,位置在 x=10,y=20,或者我们应该写成 (x,y) = (10,20)。

$ convert logo: -region '100x200+10+20' -negate wizNeg1.png
$ convert logo: -region '100x200-10+20' -negate wizNeg2.png
$ convert logo: -gravity center -region '100x200-10+20' -negate wizNeg3.png

注意,offsets 必须带上 +/‑。它表示的是一个相对偏移,而不是一个绝对坐标。offsets 的参照点不是固定的,但默认情况下,它是 (0,0),即左上角,上面的第一个例子就是这种情况。

offsets 有可能“出界”,就像第二个例子中的那样, -10+20,对于这个有一部分出界的矩形执行 ‑negate,实际的效果也就相当于 90×200+0+20。

第三个例子中,一来就使用了 ‑gravity 选项,它把当前坐标原点(或叫参照原点)设置为图像的正中,即 (320,240) 的位置,因为这张图的尺寸是 640×480。这意味着后面的 offsets 的实际效果与前面两例就有所不同,变成了 (320-10, 240+20) = (310,260)。 同时 100×200 也不再是根据左上角来计算,而是根据中心点计算。即以 (310,260) 为中心的一个 100×200 的矩形。显然,它的左上角在 (310-50,260-100) = (260,160)。


ImageMagick 忽略宽或高的表示方法( < > @ )
ImageMagick 图像组(Image Stack)
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }