javascript - 换红色和绿色?

标签 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)

最佳答案

原因是当您调用 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/

相关文章:

javascript - webpack-url-loader 忽略子文件夹

javascript - coffeescript 中的单例类

javascript - 如何使用 jQuery 等待 CSS3 过渡结束?

php - 将我的 knockoutjs 模型与我的后端 (PHP) 同步

javascript - ng-repeat 中的两个 JSON

javascript - BrowserWindow 不是构造函数或未定义 - Electron

javascript - JavaScript 最近邻库

javascript - PreventDefault() 方法不阻止页面重新加载 ReactJS

javascript - 我可以选择一个节点但不在 jsTree 中选中/取消选中它吗?

php - 在 pdf 上创建标签