JMFでQuickTimeムービーを作成する

ざっぱ〜んのプログラムで、QuickTimeムービーを作成してみました。
ということで、そのQuickTimeムービー作成部分。
JMFを使うので、ここからJMFのライブラリをとってきて、jmf.jarをクラスパスに含める必要があります。
Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle
今回はムービーの再生などは行わないので、適当なPlatformを選んでOptional FilesのCross-platform Java版を使っておくと、面倒なJMFインストールの必要がありません。


JMFを使って動画ファイルを作成するサンプルはここです
Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle


けど、このソースはそのまま他の用途で使える形ではないので、汎用で使えるものを作ってみました。
下のImageToMovクラスを使うとこんな感じでコードが書けます。

    public static void main(String[] arg){
        ImageReader ir = new ImageToMov.ImageReader() {
            public BufferedImage getImage(int idx) {
                if(idx >= 4) return null;
                BufferedImage img = new BufferedImage(400, 300, BufferedImage.TYPE_INT_RGB);
                Graphics g = img.getGraphics();
                g.setColor(Color.WHITE);
                g.fillRect(0, 0, 400, 300);

                g.setColor(Color.GREEN);
                if(idx >= 1){
                    g.drawLine(0, 0, 400, 300);
                }

                if(idx >= 2){
                    g.drawLine(0, 300, 400, 0);
                }
                if(idx >= 3){
                    g.setColor(Color.BLUE);
                    g.fillOval(150, 100, 100, 100);
                }
                g.dispose();
                return img;
            }
        };
        String filename = "C:\\Users\\naoki\\Desktop\\test.mov";
        ImageToMov.createMovFromImages(filename, 400, 300, 1, ir);
    }


そうすると、こんな感じのmovファイルができます。


ImageToMovクラスのソースはこんな感じで

続きを読む