Friday, May 08, 2009

im4javaで画像に半透明グラデーションをかけて重ね合わせる

im4javaで画像に半透明グラデーションをかけて重ね合わせるには、以下のコードを実行します。


import java.util.*;
import org.im4java.core.*;
import org.im4java.process.*;

// im4java-0.97.0-bin.tar.bz2を解凍してim4java-0.97.0.jarはclasspathに通す
public class Im4java14
{
public static void main(String args[])
throws Exception
{
try
{
// ConvertCmd convert = new ConvertCmd();
ImageCommand convert = new WindowsConvertCmd();

IMOperation op = new IMOperation();
op.addImage("sample3b.png");
// op.alpha("activate");
// op.channel("rgba");
IMOperation so1 = op.openOperation();
so1.size(100, 100);
so1.addImage("gradient:#ffffffff-#00000000");
op.closeOperation();
op.compose("copy-opacity");
op.composite();

IMOperation so2 = op.openOperation();
so2.size(200, 200);
so2.addImage("sf.png");
op.closeOperation();
op.p_swap();
op.geometry(100, 100, 20, 20);
op.compose("src-over");
op.composite();
op.addImage("sample1076a.png");
convert.run(op);
}
catch(CommandException cex)
{
System.out.println(cex.getErrorText());
cex.printStackTrace();
}
}

// im4java 0.97
static class WindowsConvertCmd extends ImageCommand
{
public WindowsConvertCmd()
{
setCommand("cmd");
setCommand("/c");
setCommand("convert");
/* another way
setCommand("C:\\Program Files\\ImageMagick-6.4.9-Q16\\convert");
*/
}
}
}



元画像1(sf.png)


元画像2(sample3b.png)


出力画像(sample1076a.png)
im4javaで半透明グラデーションをかけて重ね合わせた画像

関連情報
im4javaのまとめ

ImageMagickで画像に半透明グラデーションをかける (convertコマンドによる同様の処理)

No comments: