Processing 处理和像素

Processing 处理和像素,processing,pixels,movie,Processing,Pixels,Movie,我想在processing中使用MOVIE类创建一个简单的过滤器。然而,我对电影的大小有一个问题。过滤器正在进行中,请不要评判我:) 导入处理。视频。*; 电影theMov; 整数大小; 无效设置(){ theMov=新电影(这是“fargo.mp4”); theMov.play(); theMov.read(); 尺寸(显示宽度、显示高度); 仰泳(); 尺寸=10; } void draw(){ //图像(theMov,0,0,宽度,高度); theMov.loadPixels(); 对于(

我想在processing中使用MOVIE类创建一个简单的过滤器。然而,我对电影的大小有一个问题。过滤器正在进行中,请不要评判我:)

导入处理。视频。*;
电影theMov;
整数大小;
无效设置(){
theMov=新电影(这是“fargo.mp4”);
theMov.play();
theMov.read();
尺寸(显示宽度、显示高度);
仰泳();
尺寸=10;
}
void draw(){
//图像(theMov,0,0,宽度,高度);
theMov.loadPixels();
对于(int i=0;i
如果我想让电影全屏放映,我该怎么做?现在它只占据了屏幕的一小部分。我想要的是能够全屏渲染电影,以便loadPixels()函数加载电影全屏

因为您正在逐个矩形“绘制”每个框架矩形,所以您可以简单地计算这些矩形的新“位置”和“大小”:

float ratioX = (float)width / theMov.width;
float ratioY = (float)height / theMov.height;
根据您的纵横比,您应该更改此计算。然后在新的“位置”上用新的“大小”简单地绘制矩形:

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

我知道你想做什么(如果我理解正确的话),但不幸的是电影课非常有限。您可以使用
图像(theMov,0,0,width,height)调整视频大小并使其占据整个屏幕
但这不会对像素计算产生任何影响,因为它不会永久改变视频帧的大小。图像库有一个调整大小的功能,不适用于视频,但您可以将视频转换为一系列图像,对它们使用resize,然后在流中读取它们来执行操作…这真的很复杂,但除了使用外部库可以永久地将视频大小转换为所需大小之外,我不知道还有什么其他方法可以做到这一点。如果是我,我需要一个快速修复,那么我会创建一个方法,将视频转换为图像序列,然后按顺序读取并执行像素操作。但这是一个快速解决方案,而不是永久性的。这是一个遗憾,但没有办法调整电影的大小吗?这应该是一个基本的方法,不是吗?应该有,有一个用于图像的方法称为
resize()
,但不存在用于视频的等效方法。但我会四处看看,看看是否遗漏了什么,然后再回来。否则,希望其他人能提出一些建议。谢谢Majlik,但你能再解释一下这是如何工作的以及为什么工作的吗?我不明白你在做什么?在理论基础上,它是用来调整图像大小(像素阵列)。或者使用直觉,您希望将视频帧中的右下角(最大)像素绘制为画布中的最大像素等,但在您的情况下,我们可以增加“像素”的大小,因为您使用矩形,所以我们使用相同的比率来增加整个视频的大小。如果你不使用这个过滤器,你应该使用更复杂的方法来调整帧的大小。。。
rect(i * ratioX, j * ratioY, size * ratioX, size * ratioY);