好的,因此我将遵循DLTP课程,因此我不确定该语法是否在其他地方是闻所未闻的。基本上我想做的是将231像素宽的图像分成3个相等的列,其中一列为红色,绿色,蓝色。我不知道我在做什么错。当我调用函数时,它只会打印两次原始图像。
当我进行此操作(并通过对else / if和for循环的研究进行调整)时,我想到沿x轴在77以下的任何像素都会变为绿色,然后我对每种颜色和每列重复我的操作需要。
任何需要正确输入的帮助都会很棒。我正在尝试理解概念,没有备忘单。
var img = new SimpleImage("chapel.png");
print(img);
function stripeyPic(img){
for (var pixel of img.values()){
if(pixel.getX < 77){
pixel.setGreen(255);
}
else if(pixel.getX > 154){
pixel.setRed(255);
}
else if(pixel.getX <= 78 && pixel.getX >=155){
pixel.setBlue(255);
}
}
print(img);
}
stripeyPic(img);
答案 0 :(得分:2)
仔细检查这种情况:
(pixel.getX <= 78 && pixel.getX >=155)
这需要一个既小于79又大于154的数字,该数字显然不存在。你的意思是这样:
(pixel.getX >= 78 && pixel.getX <=155)
但是实际上,您根本不需要声明它,因为您可以使用else
来表示“与前面两个条件中的任何一个都不匹配”。