Java 理解Chromakey

Java 理解Chromakey,java,loops,if-statement,chromakey,Java,Loops,If Statement,Chromakey,给出用新背景替换所有蓝色的示例代码: 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

给出用新背景替换所有蓝色的示例代码:

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 ( ) ) ;
        } 
    }
}
public void chromakeyBlue(图片为NEBG)
{
Pixel[]pixelArray=this.getPixels();
像素=零;
像素newPixel=null;
对于(inti=0;i
我想知道是否使用此条件:

currPixel.getRed() < currPixel.getBlue() && currPixel.getGreen() < 
currPixel.getBlue()
currPixel.getRed()
在if语句上,确定它是否有效。换句话说,使用该条件是否具有与
currPixel.getRed()+currPixel.getGreen()

currPixel.getRed()+currPixel.getGreen()
将测试蓝色是否大于红色+绿色之和。因此,如果RGB为10,10,15,则该条件的计算结果为false

currPixel.getRed()
将测试蓝色是否大于红色,蓝色是否大于绿色。因此,如果RGB为10,10,15,则该条件的计算结果为真


所以不,这两种情况的效果并不相同。(如果它们在视觉上看起来相似,那可能只是巧合的测试结果)

那不是JavaScript。你是说Java吗?无论如何,我不认为将蓝色与(红色+绿色)进行比较会产生与分别将红色与蓝色、绿色与蓝色进行比较相同的结果,因为,例如,如果红色和绿色都是5,而蓝色都是8?。