当我执行这段代码时,只有绿色值被交换。红色值保持不变。为什么会这样,我应该怎么做?
初始 RGB:90:123:92 新的 RGB 应该是:123:90:92 现在,我得到:90:90:92
var img = new SimpleImage("smalllion.jpg");
var pix = img.getPixel(0,0);
print(img)
print("orginal rgb " + pix)
function swapRedGreen(pixel){
for(var pixel of img.values()){
var newG = pixel.getRed();
pixel.setGreen(newG)
var newR = pixel.getGreen();
pixel.setRed(newR);
}
}
swapRedGreen("smalllion.jpg")
print(img)
var pix1 = img.getPixel(0,0);
print(pix1)
最佳答案
原因是当您调用 var newR = pixel.getGreen();
时,green
已经被设置为 red
颜色.而是将原始的绿色和红色存储到开头的变量中。
试试这个:
function swapRedGreen(pixel) {
for (var pixel of img.values()) {
var oldRed = pixel.getRed();
var oldGreen = pixel.getGreen();
pixel.setGreen(oldRed);
pixel.getRed(oldGreen);
}
}
关于javascript - 换红色和绿色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48726678/