我目前正试图找出如何将黑色像素的颜色更改为黄色。我知道黄色有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"是一个黑色屏幕的图像,我试图变黄。如果需要更多信息,请告诉我,谢谢!
答案 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);