Monday, August 04, 2008

Java2Dで画像を半透明に重ね合わせる

Java2Dで画像を半透明に重ね合わせるには、以下のコードを実行します。

import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import java.io.*;
import java.util.*;
import javax.imageio.*;

public class Java2DTest11
{
public static void main(String args[])
throws Exception
{
/* Java2Dで画像を半透明に重ね合わせる */
BufferedImage img = ImageIO.read(new File("sf.jpg"));
BufferedImage img2 = ImageIO.read(new File("sample6.jpg"));
Graphics2D gr = img.createGraphics();
gr.setComposite(
AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.4F)
);
gr.drawImage(img2,10,70,null);
gr.dispose();
ImageIO.write(img, "jpg", new File("sample521a.jpg"));
}
}

元画像1(sf.jpg)


元画像2(sample6.jpg)


出力画像(sample521a.jpg)


環境
JDK6 Upadate6(JDK1.6.0_06)

関連項目
Java2Dで画像を重ね合わせる

3 comments:

potato digger said...

gr.drawImage(img2,10,70,null);
のところ、パラメータの順番が違うように思えます。
引数のBufferedImageOpがnullなのであれば、
gr.drawImage(img2,null,10,70);
となるはずです。

potato digger said...

と思ったらGraphicsクラスのほうのdrawImageを使っていたのですね^^;
こちらのミスでした、申し訳ありません。

kyle said...

コメントありがとうございます。お気づきの点がありましたら、またご指摘お願いします。