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のまとめ
ImageMagickで画像に半透明グラデーションをかける (convertコマンドによる同様の処理)
 
No comments:
Post a Comment