Saturday, May 19, 2012

groovyで画像を減色してツートーン画像に変換する

groovyで画像を減色してツートーン画像に変換するには、以下のコードを実行します。
@Grab(group='com.jhlabs', module='filters', version='2.0.235')
import java.awt.*
import java.awt.image.*
import java.io.*
import javax.imageio.*
import com.jhlabs.composite.*
import com.jhlabs.image.*

// 減色ツートーン
def img = ImageIO.read(new File("sf2.jpg"))

def qf = new QuantizeFilter()
// 色数
qf.setNumColors(16)
// ディザ使用 
qf.setDither(false)
// サーペンタインパターンを使用するか
qf.setSerpentine(false)
img = qf.filter(img, null)

def lc = new LinearColormap((int)0xFF7799DD, (int)0xFFFFFF30)
LookupFilter lf = new LookupFilter(lc)
img = lf.filter(img, null)


ImageIO.write(img, "png", new File("quantizetwotone.png"))

元画像
出力画像

動作環境
groovy 1.8.6, JDK7 update4

No comments: