BufferedImage を png 画像として保存する必要があります。次のステップでは、別のプログラム (Avisynth) で画像を開く必要があります。このプログラムは、ms-paint で描画した画像を開くことができますが、Java プログラムで作成した画像を開くことはできません。私のプログラムとms-paintの画像はpngのタイプで、Windowsでは良さそうです。それを開くことができ、画像には私が描いたものがすべて含まれていることを意味します。外部プログラムでは、次のエラーがスローされます。
Avisynth open failure:
ImageReader error 'Could not open file' in DevIL library.
reading image"C:\Images\mask\mirror.png"
DevIL version 166.
(C:\User\admin\Documents\4555.avs)
ここにコードがあります。コメント行でも試してみました。私はグーグルで何かを見つけました。このメッセージは、不適切な画像形式の場合によく見られます。しかし、ms-paint のように同じ画像を作成する方法がわかりません。
BufferedImage img = new BufferedImage(video.getWidth(), video.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = (Graphics2D) img.getGraphics();
img.getGraphics().setColor(Color.white);
c.paintAll(img.getGraphics());
File f = new File(path + ".png");
opencv_core.IplImage imgs = IplImage.createFrom(img);
opencv_highgui.cvSaveImage(f.getPath(), imgs);
//ImageIO.write(img, "png", f);
コード内:
cはJComponentで、保存したい画像が含まれており、JavaCLライブラリを使用しました