交换红色和绿色?

时间:2018-02-10 23:28:15

标签: javascript

执行此代码时,只交换绿色值。红色值保持不变。为什么这样,我该怎么做?

初始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)

2 个答案:

答案 0 :(得分:1)

原因是当您致电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);
    }
}

答案 1 :(得分:0)

问题:这可能是因为在第9行中,您为像素指定了绿色值,然后在第10行中检索该值以转换为红色。你基本上是转换红色 - >绿色,然后绿色 - >红色。

解决方案:尝试切换第9行和第10行。