Processing antaa sinun viedä animoidun tai interaktiivisen ohjelman QuickTime -formaatissa olevana videoanimaationa. Luodaksemme videoita voimme käyttää ennalta määriteltyä MovieMaker-objektia kirjastosta org.processing.video. Linux-käyttäjien tulee huomata, että tätä ominaisuutta ei ole käytettävissä.
MovieMaker-objekti on Processingin ennalta määritelty luokka, joka luo videotiedoston, ja johon liitetään kuvia, kun ohjelma suoritetaan. Käyttääksesi sitä ohjelmassasi, tuo videokirjasto Processingiin:
Julistamme ohjelmamme alussa muuttujan, joka varastoi video-objektimme. Ohjelman täytyy luoda objekti setup() -osassa antamalla sille joukko parametrejä:
import processing.video.*; MovieMaker mm; // Luo muuttuja objektiamme varten void setup() { size(size(300,300); /* * Luodaan objekti MovieMaker. * Video on samaa kokoa kuin meidän kuvamme. */ mm = new MovieMaker(this, width, height, "Video.mov"); }
Jokainen metodin draw () kutsu joutuu kertomaan MovieMaker-objektille, että nyt ruudulla oleva kuva pitää tallentaa videotiedostoon.
void draw() { ellipse(mouseX,mouseY,20,20); //Ellipsin luominen mm.addFrame(); //Lisätään kuva videoon }
Tässä vaiheessa videon nauhoitus loppuu, kun lähdet pois ohjelmasta. Voit käskeä ohjelman MovieMaker lopettaa nauhoittaminen milloin tahansa. Lisäämme toiminnon, joka lopettaa videon nauhoittamisen, kun painat jotain nappia.
void keyPressed() { mm.finish(); }
Oletusarvoisesti MovieMaker-objekti tekee pakkaamatonta videota 15 ruutua sekunnissa. Interaktiivisille ohjelmille tämän raportointitavan pitäisi olla liian raskas. Voit määritellä pakkausformaatin ja muuttaa ruutujen määrän luodessasi objektin MovieMaker.
Parametrit ovat seuraavat:
mm = new MovieMaker(this, width, height, "video.mov", 30, MovieMaker.H263, MovieMaker.HIGH);
(Luettavuuden vuoksi koodi on jaettu kahdelle riville.)
Näillä parametreilla videon nauhoittaminen on jouheampaa.
Tässä on joitain mielenkiintoisia videokoodekkeja:
There has been error in communication with Booktype server. Not sure right now where is the problem.
You should refresh this page.