如何在javascript中更改像素的颜色

时间:2018-01-13 02:54:41

标签: javascript

我目前正试图找出如何将黑色像素的颜色更改为黄色。我知道黄色有255绿色和255红色,0蓝色(我认为)。 因此,我尝试将绿色和红色设置为255,将蓝色设置为0,但图像仍然保持黑色。这是我的代码:

var img = new SimpleImage(200,200);
print(img);

for (var pixel of img.values()) {
    var newG = 0 - pixel.getGreen();
    var newR = 255 - pixel.getRed();
    var newB = 255 - pixel.getBlue();
    var Black = newG + newR + newB;
    pixel.setGreen(newG);
    pixel.setRed(newR);
    pixel.setBlue(newB);

}
顺便说一下,班级" SimpleImage"是一个黑色屏幕的图像,我试图变黄。如果需要更多信息,请告诉我,谢谢!

4 个答案:

答案 0 :(得分:1)

我确定不止一种方法可以做到这一点。这里有很多人使用图形API比我更有经验。

我会通过将图像放在画布上,通过迭代每个像素来读取画布,进行颜色更改(是的,它是R 255 G 255 B 000)并通过迭代写入画布来实现通过它。

使用图像加载画布很简单,并在此处的许多地方进行解释,如果您愿意,也可以在w3Schools上进行说明。

# collecting all the csv files in a given folder
files.measurments <- base::list.files(path = ".", include.dirs = FALSE)

# reading all csv files into a list of dataframes
files.combined <- purrr::map(files.measurements, read.csv)

# combining the individual dataframes into a single dataframe
finaldf <- plyr::rbindfill(files.combined)

这是我的第一个答案,它可能不完美,但我经常使用它,所以它确实有效。

如果您正在使用第三方库,我认为不需要它,因为我使用的代码是纯JavaScript。

希望像这里的其他人一样帮助我。

答案 1 :(得分:0)

这很简单。您只需要分配相应的RGB值

var img = new SimpleImage(200,200);
print(img);

for (var pixel of img.values()) {
    pixel.setRed(255);
    pixel.setGreen(255);
    pixel.setBlue(0);
}
print(img); //Print result

别忘了打印更改后的图像以查看结果。

答案 2 :(得分:0)

实际上黑人的Rob值是ERROR: In /build/vtk6-VHOYAG/vtk6-6.3.0+dfsg1/Rendering/OpenGL/vtkXOpenGLRenderWindow.cxx, line 1475 vtkXOpenGLRenderWindow (0x7fffca1a12a0): bad X server connection. DISPLAY=Aborted (core dumped) 。所以你在价值观上犯了一个错误。对于绿色,它应该是0,0,0,对于红色,它应该是255-pixel.getGreen()。然后,您还必须将255-pixel.getRed放在for循环后才能起作用。

答案 3 :(得分:0)

var img = new SimpleImage(200,200);
for (var pixel of img.values()) {
    pixel.setGreen(255);
    pixel.setRed(255);
}
print(img);