Как я создаю фильм из ряда изображений с помощью qtj и Java?

Сначала удалите несколько пробелов для более простой команды grep

sed 's/[ ]*:[ ]*/:/g' file | grep -Eo "[a-zA-Z][^:]*:[0-9.]*"

или

sed 's/[ ]*:[ ]*/:/g' file | grep -Eo "[^:]+:[0-9.]*"

РЕДАКТИРОВАТЬ: Сначала я использовал h для нахождения первой буквы имени хоста .

6
задан Alex B 18 March 2009 в 15:11
поделиться

2 ответа

Я сделал это через QTJ с классом MovieMaker от обработки библиотек (GPL). Обработкой является чистый Java, хотя это может скрыть его для новичков.

Маленькое учебное руководство: Загрузите Обработку, откройте ее, перейдите к Эскизу-> Выставочная Папка Эскиза, создайте папку, названную "данными", и поместите все свои изображения в той папке, названной "filename01.gif" через "filename09.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();    
  }
}

Это создаст файл "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 для библиотеки обработки. Вот javadocs для класса MovieMaker. Если Вы хотите, Вы видите источник к классу MovieMaker.

HTH

7
ответ дан 16 December 2019 в 21:46
поделиться

Существует связанная с экспортом часть примера кода здесь:

http://developer.apple.com/samplecode/ImportExport/listing1.html

Это показывает, как единственный собственный фильм в формате QuickTime может быть открыт для чтения и затем перейтись к компоненту MovieExporter для создания нового фильма в формате QuickTime из него.

Чтобы код импортировал файл для как источник для записи, посмотрите

void importMedia()

Чтобы код экспортировал источник в фильм в формате QuickTime, посмотрите

void run()

Должно быть возможно открыть файл изображения с помощью того же подхода, тем не менее, пока формат файла входного файла поддерживается QuickTime (как f.e. BMP).

Необходимо смочь записать последовательность файлов изображений с помощью большей части этого кода также. Единственная точка, которую необходимо будет исследовать, - какой метод необходимо будет назвать для добавления дополнительных кадров к существующему Фильму. Это могло бы работать с помощью того же API, но скорее всего необходимо будет использовать другой вызов.

Если необходимо вырыть для другого метода, необходимо смочь найти его в спокойной Справочной документации Java расположенным здесь:

http://developer.apple.com/Java/Reference/1.4/Java14API_QTJ/

Это - взлом и скорее всего плохой в производительности, но это могло бы на самом деле работать.

И... Я никогда не пробовал это (я - QuickTime для парня Windows торговлей), так: извините, никакая гарантия =).


Править: При поиске способа записать кадры в спокойный Фильм с помощью существующего входного буфера вместо того, чтобы считать данные из файла с помощью спокойного API должны быть API для этого также. Просто проверьте справочную документацию.


Редактирование 2: На самом деле могло бы стоить проверить документацию API C/C++ здесь, поскольку именование компонентов и вызовов, кажется, следует примерно тем же соглашениям о присвоении имен (т.е. это могло бы помочь вырыть для вызовов Java API, в котором Вы нуждаетесь), и Документы C/C++, кажется, более полны с точки зрения обеспечения Руководств и Как To как начальная точка. Документы C/C++ могут быть найдены здесь:

http://developer.apple.com/referencelibrary/QuickTime/index.html

Самые интересные разделы должны быть

  1. Импорт и Экспорт
  2. Сжатие и Распаковка

Развлекайтесь!


1
ответ дан 16 December 2019 в 21:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: