处理和像素

时间:2014-06-03 16:44:25

标签: processing pixels movie

我想在处理过程中使用MOVIE类创建一个简单的过滤器。但是,我的电影大小有问题。过滤器正在进行中,请不要评价我:)

import processing.video.*;

Movie theMov; 
int size;

void setup() { 

  theMov = new Movie(this, "fargo.mp4");
  theMov.play();
  theMov.read();
  size(displayWidth, displayHeight);
  noStroke();
  size = 10;
}

void draw() { 
  //image(theMov, 0, 0, width, height);
  theMov.loadPixels();
  for (int i = 0; i < theMov.width; i+=size) {
    for (int j = 0; j < theMov.height; j+=size) {
      color c = theMov.pixels[i+j*theMov.width];
      fill(c);
      rect(i, j, size, size);
    }
  }
  updatePixels();
  size = (int)random(10, 20);
} 

void movieEvent(Movie m) { 
  m.read();
} 

如果我希望电影全屏,我该怎么做?因为它现在只填充屏幕的一小部分。我想要的是能够全屏渲染电影,以便loadPixels()函数加载电影全屏。

1 个答案:

答案 0 :(得分:1)

因为你是&#34;画&#34;每个框架矩形矩形你可以简单地计算新的&#39;&#39;位置&#39;和&#39;尺寸&#39;对于这些矩形:

float ratioX = (float)width / theMov.width;
float ratioY = (float)height / theMov.height;

根据您的宽高比,您应该更改此计算。然后简单的绘制矩形与新的&#39;大小&#39;在新的&#39;位置&#39;:

rect(i * ratioX, j * ratioY, size * ratioX, size * ratioY);