backport

技術ネタと野球とときどき雑談

im4javaでoffsetを指定する

2017/05/25
development Java, im4java

ImageMagickでoffsetを指定するにはgeometryオプションを使います。 -10+20と指定するとxとyのoffsetが指定されたと見なしてくれます。100x200-10+20と指定すると、width, height, x offset, y offsetの順で解釈されます。

じゃあim4javaだとこうすればいいのね、と思って動かしてみたら生成される画像がヘン。

int marginX = -10;
int marginY = 20;
IMOperation op = new IMOperation();
op.geometry(marginX, marginY);

JavaDoc読めば分かるんですが、im4javaのIMOps#geometry()は引数にバリエーションがあり、

  • geometry(java.lang.Integer width, java.lang.Integer height)
  • geometry(java.lang.Integer width, java.lang.Integer height, java.lang.Integer x, java.lang.Integer y)

となっています。marginを取りたいときは引数4つを使うんですね。 引数2つだとwidthとheightと見なされていて予想しない画像が生成されていたのでした。

ImageMagickはコマンドラインをいい感じに解釈してくれていたので気が付かなかった...



コメント欄を表示する

おススメ

WEB+DB PRESS Vol.99

特集「良いコードって何だろう?」がおススメ

WEB+DB PRESS総集編[Vol.1~84] (WEB+DB PRESS plus)

お値段手ごろなので持っておいて損なし

Kindle Paperwhite Wi-Fi、ブラック

読みたいときに読みたい本を読めるのが嬉しい

超小型65W ノートPC汎用 ACアダプター FINsix ”Dart” (シルバー)超軽量85g 11種類の変換プラグで1000機種以上のノートPCに対応 USB5V出力付きでPCとスマホ同時充電 ※必ずご使用のPCとの互換性をご確認ください。『PSE認証済』

持ち運びに便利な小型軽量のACアダプタ