Javascript can';在处理js时,无法从PImage获取像素[]

Javascript can';在处理js时,无法从PImage获取像素[],javascript,image-processing,pixels,processing.js,pixel-manipulation,Javascript,Image Processing,Pixels,Processing.js,Pixel Manipulation,我一直在尝试使用processing.js运行以下代码,但它只会给我一个灰色窗口。我认为这是因为它无法正确访问图像像素[] PImage img; void setup() { // this is run once. size(600, 400); img=loadImage("http://c.tadst.com/gfx/600x400/int-mountain-day.jpg?1"); } void draw() { // this is run repeatedly

我一直在尝试使用processing.js运行以下代码,但它只会给我一个灰色窗口。我认为这是因为它无法正确访问图像像素[]

PImage img;


void setup() {  // this is run once.  
 size(600, 400); 
 img=loadImage("http://c.tadst.com/gfx/600x400/int-mountain-day.jpg?1");

} 
void draw() {  // this is run repeatedly.   

int dimension = (img.width*img.height);
img.loadPixels();
for (int i=0; i < dimension; i+=2) { 
  img.pixels[i] = color(0, 0, 0); 
} 
img.updatePixels();
   image(img, 0, 0);
}
PImage-img;
void setup(){//此操作只运行一次。
大小(600400);
img=加载图像(“http://c.tadst.com/gfx/600x400/int-mountain-day.jpg?1");
} 
void draw(){//这将重复运行。
内部尺寸=(内径宽度*内径高度);
img.loadPixels();
对于(int i=0;i

代码在这里运行

我不知道它为什么不能在processing.js上运行

但是,每次调用draw()函数时,您都在进行图像处理(绘制黑色条纹),这似乎是不必要的,而且对于浏览器来说可能过于密集。 请记住,当草图开始时,setup()函数被调用一次,而当草图运行时,draw()函数在无限循环中被调用(当关闭草图时停止)

因此,基本上在setup()函数中进行一次图像处理,然后在draw()函数中绘制处理过的图像(不需要,也可以在setup()函数中绘制图像)。 查看此代码中的其他示例可能会:

PImage img;

void setup() {  // this is run once.  
  size(600, 400); 
  img=loadImage("http://c.tadst.com/gfx/600x400/int-mountain-day.jpg?1");
  img.loadPixels();
  int dimension = (img.width*img.height);
  for (int i=0; i < dimension; i+=2) { 
     img.pixels[i] = color(0, 0, 0);
  } 
  img.updatePixels();
} 
void draw() {  // this is run repeatedly. It only draws the image again and again.   
  image(img, 0, 0);
}
PImage-img;
void setup(){//此操作只运行一次。
大小(600400);
img=加载图像(“http://c.tadst.com/gfx/600x400/int-mountain-day.jpg?1");
img.loadPixels();
内部尺寸=(内径宽度*内径高度);
对于(int i=0;i
我一直在处理这个问题。问题似乎是文档完全错了

我所做的几乎和你上面展示的一样,结果也是一样的,但事实证明,这是你必须要做的:

var pixels = bg.pixels.toArray();
for(var i=0;i<pixels.length;++i){
  pixels[i] = color(0);
}
bg.pixels.set(pixels);
var pixels=bg.pixels.toArray();
对于(var i=0;i