Thursday, April 30, 2009

groovyで透明な文字列を描画する

groovyで透明な文字列を描画するには、以下のコードを実行します。


import javax.imageio.*;
import groovy.swing.j2d.*

img = ImageIO.read(new File("sf.jpg"))
gr = new GraphicsRenderer()
gr.renderToFile("sample950a.png", img.width, img.height){
antialias("on")
image(image: img)
font(new java.awt.Font('Tahoma', java.awt.Font.BOLD, 110))
subtract( borderColor: no, fill: 'white'){
rect(x:20, y:20, width: img.width-40, height: img.height-40)
text( x:30, y:60, text: "SF")
}
}
gr.renderToFile("sample950b.png", img.width, img.height){
antialias("on")
image(image: img)
font(new java.awt.Font('Tahoma', java.awt.Font.BOLD, 110))
subtract( borderColor: no, fill: 'black', opacity:0.5){
rect(x:20, y:20, width: img.width-40, height: img.height-40)
text( x:30, y:60, text: "SF")
}
}


元画像(sf.jpg)


出力画像1(sample950a.png)


出力画像2(sample950b.png)
groovyで透明な文字列を描画した画像

動作環境
Groovy1.6.0, JDK1.6 Update12

関連項目
groovyで文字列をガラスのように描画する
groovyで日本語を描画する
SVGRendererで透明な文字列を描画する (SVGRendererでの同様の処理)

No comments: