В p5.js, я пытаюсь обрабатывать каждый пиксель изображения для личного проекта, поэтому я думал, что начну медленно, и попробую сделать каждый пиксель черным. По какой-то причине экран просто остается белым, и я понятия не имею, почему пиксели не обновляются. Здесь код:
var Canvas;
var srcImg;
var defaultImg = "http://i.imgur.com/ARg0OOy.jpg";
function preload() {
srcImg = loadImage(defaultImg);
}
function setup () {
createCanvas(srcImg.width,srcImg.height);
noLoop();
}
function draw() {
srcImg.loadPixels();
for (var x = 0; x < srcImg.width; x++) {
for (var y = 0; y < srcImg.height; y++) {
var loc = x + y*srcImg.width;
srcImg.pixels[loc] = color(224,29,29);
}
}
console.log(loc);
console.log(srcImg.width);
console.log(srcImg.height);
console.log(srcImg.width * srcImg.height);
srcImg.updatePixels();
//image(srcImg, 0,0,srcImg.width, srcImg.height);
}
Кроме того, если я раскомментирую последнюю строку, я вижу исходное изображение, и оно отключено сверху (и оно не превратило каждый пиксель в черный цвет). Вы можете сами увидеть здесь. Любые мысли о том, почему это происходит?
Редактирование: я попытался сделать даже один ряд пикселей ярким красным цветом, и причина, по которой я получаю белый экран, - это то, что независимо от того, какой цвет я устанавливаю пикселями, они становятся белыми... Кроме того, когда я пытался сделать весь ряд этого красного цвета, он остановился примерно на 1/4 пути, как показано здесь (и все еще белый). Я не знаю, почему это происходит.
Вы делаете все пиксели черными, но затем вы рисуете srcImage
поверх этих черных пикселей. Итак, все, что вы видите, это srcImage
.
Попробуйте прокомментировать image(srcImg, 0,0,srcImg.width, srcImg.height);
чтобы увидеть черные пиксели.
updatePixels()
перезаписывать исходныйsrcImg
, делая его черным? В любом случае, я попытался закомментировать это, и теперь на экране ничего не появляется.updatePixels()
перезаписывать исходныйsrcImage
? И ничто не является именно тем, что должно появиться на экране - вы рисуете только черные пиксели.