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)。