Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Processing 2. Креативное программирование

.pdf
Скачиваний:
144
Добавлен:
06.03.2016
Размер:
16.65 Mб
Скачать

Processing

saveBytes() ., - .

, . , hex- . HexEdit Mac OS X; Windows Linux . . .

loadBytes()., hex-, . , ,.

byte[] bytes = loadBytes("strangefile-56.zzz"); println( char( bytes ) );

120

6

:

., ,. ,,Vimeo YouTube.

. ,.

Processing playing_video.pde.dataProcessing. marbles.mov; ,. dataProcessing. , PDE.

video. Sketch | Import Library | video. Movie setup().setup() .

import processing.video.*;

Movie m;

void setup()

{

size( 640, 480 );

m = new Movie( this, "marbles.mov" ); m.loop();

}

, - movieEvent() .

void movieEvent( Movie m )

{

m.read();

}

, - image().

void draw()

{

background( 0 );

image( m, 0, 0, width, height );

}

122

6

, , :

, - Movie. setup(). setup() new Movie()data . . -this. PApplet new Movie. - .loop() Movie.

movieEvent() , . read() Movie.image().

123

Processing - . ProcessingMovieMaker, QuickTime movie. Processing 2 GStreamer framework. -, .

. PVector -, .900- , .

int randomNum; l

PVector[] points;

float radius = 2;

void setup()

{

size( 1280, 720 ) smooth();

background( 234, 228, 17 );

points = new PVector[64];

for ( int i = 0; i < points.length; i++ ) {

points[i] = new PVector(random(width), random(height));

}

frameRate( 30 );

randomNum = floor( random( 10000, 90000 ) );

noFill(); stroke( 0, 64 );

}

void draw()

{

for ( int i = 0; i < points.length; i++ ) { float newX = points[i].x + random( -10, 10 );

124

6

float newY = points[i].y + random( -10, 10 );

stroke( i*4, 64 );

line( points[i].x, points[i].y, newX, newY ); ellipse( newX, newY, radius, radius );

points[i].x = newX; points[i].y = newY;

}

radius++;

if ( radius > 10 ) { radius = 2;

}

saveFrame("images/export-"+randomNum+"-#####.tga");

// save 900 frames = 30 sec @ 30 fps if ( frameCount >= 900 ) {

exit();

}

}

imagesTGA.

125

-setup() . 1280 x 72030 . ,. -Vimeo YouTube. ,, , , frameRate().

saveFrame().randomNum,.. exit(). 30- , 900 . :x = .

TGA.Processing, TGA .PNG JPEG, , .

,image(). ,, .

. video,Movie, .

import processing.video.*;

Movie m;

int numPixels;

void setup()

{

size( 640, 480 );

numPixels = width * height;

m = new Movie( this, "marbles.mov" ); m.loop();

}

126

6

draw().image(). ,245.

void draw()

{

background( 0 );

image( m, 0, 0, width, height );

loadPixels();

for ( int i = 0; i < numPixels; i++ ) { float b = brightness( pixels[i] ); if ( b > 245 ) {

pixels[i] = lerpColor( pixels[i], color(0, 0, 0), map(b, 0, 255, 0, 1));

}

}

updatePixels();

}

void movieEvent( Movie m )

{

m.read();

}

, , ,.

127

loadPixels().for. , 245,. updatePixels().

lerpColor() ., ,, .0 1. 0.1, . 0.9, .0.5.

, , ..hue() saturation() .

, , .filter() .

.filter() image().

import processing.video.*;

Movie m;

void setup()

{

size( 640, 480 );

m = new Movie( this, "marbles.mov" ); m.loop();

}

void draw()

{

background( 0 );

128

6

image( m, 0, 0, width, height ); filter( POSTERIZE, 4 );

}

void movieEvent( Movie m )

{

m.read();

}

filter() POSTERIZE.:

filter(), ,. . ,filter():

fBLUR: ..1 . ,, .

129

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]