给定此示例代码,它将所有蓝色替换为新背景:
public void chromakeyBlue(Picture newBg)
{
Pixel [] pixelArray = this.getPixels();
Pixel currPixel = null;
Pixel newPixel = null;
for (int i = 0; i < pixelArray . length ; i++) {
currPixel = pixelArray [ i ];
if (currPixel.getRed() + currPixel.getGreen() < currPixel . getBlue ())
{
newPixel = newBg.getPixel(currPixel.getX(),
currPixel.getY ( ) ) ;
currPixel . setColor ( newPixel . getColor ( ) ) ;
}
}
}我想知道如果使用这个条件:
currPixel.getRed() < currPixel.getBlue() && currPixel.getGreen() <
currPixel.getBlue()在if语句上,判断它是否可以工作。换句话说,使用该条件是否具有与currPixel.getRed() + currPixel.getGreen() < currPixel . getBlue ()相同的效果
发布于 2017-11-04 06:18:17
currPixel.getRed() + currPixel.getGreen() < currPixel.getBlue()将测试蓝色是否大于红色+绿色的总和。因此,如果RGB为10,10,15,则此条件的计算结果为false。
currPixel.getRed() < currPixel.getBlue() && currPixel.getGreen() < currPixel.getBlue()将测试蓝色是否大于红色以及蓝色是否大于绿色。因此,如果RGB为10,10,15,则此条件的计算结果为true。
所以不,这两个条件不会有相同的效果。(如果它们在视觉上看起来很相似,那可能只是巧合的测试结果)
https://stackoverflow.com/questions/47091138
复制相似问题