u-ryo's blog

various information for coding...

Drawing Rectangles on an Image for Groovy

| Comments

今まで、「画像を読み込んで線や図形を描く」というのはGroovyFXでやってたんですが、 JavaFXってheadlessで出来ないんですね!? びっくりポンです。 java.awt.headless=trueもそういやAWTなんですね。 うーむ、流石は廃止されるJavaFX、と思ったんですが、 どうせim4java使ってるなら、なんだImageMagickだけで出来るじゃーん、 ということに遅ればせながら気付きました。 ImageMagickってdrawも出来るんですね。

大体、以下の要領です。

  1. import org.im4java.core.*
  2. op = new IMOperation()
  3. op.addImage(...)で画像fileを読み込む
  4. op.fill('rgba(255,100,0,0.5)')等と塗り潰す色を指定
  5. op.stroke('white')等と線の色を指定
  6. op.draw('rectangle 0,10,30,30')で長方形を描画
  7. op.draw('text 0,10 ABCD')で文字を描画
  8. op.quality(80)で圧縮率(品質)指定
  9. もう一度op.addImage(...)で出力画像の名前と形式を指定
  10. new ConvertCmd().run(op)で実行

公式pageにありますけどね。

Comments