当前位置:  开发笔记 > 编程语言 > 正文

如何使用qtj和java从一组图像创建电影?

如何解决《如何使用qtj和java从一组图像创建电影?》经验,为你挑选了1个好方法。

我有一组图像,我想一个接一个地添加并创建一个电影.我将使用Quicktime for java(我在Mac上).

我在网上搜索了我发现了很多例子,展示了如何使用qtj播放电影,但我找不到任何代码片段或教程,展示我如何使用qtj逐帧创建电影?



1> P. Myer Nore..:

我通过QTJ用处理库(GPL)中的MovieMaker类完成了这个.处理是纯java,虽然它可以为初学者隐藏它.

小教程: 下载处理,打开它,转到草图 - >显示草图文件夹,创建一个名为"数据"的文件夹,并将所有图像放在该文件夹中,通过"filename09.gif"命名为"filename01.gif".将以下代码粘贴到编辑器中,然后点击播放:

/**
 * Makes a QuickTime movie out of an array of images.
 */

import processing.video.*;

MovieMaker mm;
PImage[] imageFrames;
int index;

void setup() {
  size(320, 240);
  int numFrames = 9;
  imageFrames = new PImage[numFrames];
  for( int i = 0; i < imageFrames.length; i++ )
  {
    imageFrames[i] = loadImage( "filename" + nf(i+1,2) + ".gif" );
  }
  // Save uncompressed, at 15 frames per second
  mm = new MovieMaker(this, width, height, "drawing.mov");
  // Or, set specific compression and frame rate options
  //mm = new MovieMaker(this, width, height, "drawing.mov", 30, 
  //                    MovieMaker.ANIMATION, MovieMaker.HIGH);
}

void draw() {
  if( index < imageFrames.length )
  {
    // show the image
    image( imageFrames[index], 0, 0 );
    // Add window's pixels to movie
    mm.addFrame();
    index++;
  }
  else
  {
    mm.finish();
    // Quit running the sketch once the file is written
    exit();    
  }
}

这将从sketch文件夹中的图像创建一个文件"drawing.mov".如果你去文件 - >导出应用程序,然后打开草图文件夹并导航到文件夹application.macosx/source或application.windows/source,应该有一个.java文件,其中包含实际代码,应该看起来像这样:

import processing.core.*; 
import processing.xml.*; 

import processing.video.*; 

import java.applet.*; 
import java.awt.*; 
import java.awt.image.*; 
import java.awt.event.*; 
import java.io.*; 
import java.net.*; 
import java.text.*; 
import java.util.*; 
import java.util.zip.*; 
import java.util.regex.*; 

public class movie2 extends PApplet {

/**
 * Makes a QuickTime movie out of an array of images.
 */



MovieMaker mm;
PImage[] imageFrames;
int index;

public void setup() {
  size(320, 240);
  int numFrames = 9;
  imageFrames = new PImage[numFrames];
  for( int i = 0; i < imageFrames.length; i++ )
  {
    imageFrames[i] = loadImage( "filename" + nf(i+1,2) + ".gif" );
  }
  // Save uncompressed, at 15 frames per second
  mm = new MovieMaker(this, width, height, "drawing.mov");
  // Or, set specific compression and frame rate options
  //mm = new MovieMaker(this, width, height, "drawing.mov", 30, 
  //                    MovieMaker.ANIMATION, MovieMaker.HIGH);
}

public void draw() {
  if( index < imageFrames.length )
  {
    // show the image
    image( imageFrames[index], 0, 0 );
    // Add window's pixels to movie
    mm.addFrame();
    index++;
  }
  else
  {
    mm.finish();
    // Quit running the sketch once the file is written
    //exit();    
    println( "done" );
  }
}

  static public void main(String args[]) {
    PApplet.main(new String[] { "--bgcolor=#e0dfe3", "movie2" });
  }
}

要使用纯java,您需要使用类路径上的处理应用程序文件夹中的core.jar和video.jar,然后编译此java代码.这是一个函数引用和处理库的javadoc. 以下是MovieMaker类的javadoc.如果需要,您可以看到MovieMaker类的源代码.

HTH

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有