0

これは私が問題を抱えているコードです。配列が値 255 を超えないようにする必要があります。この if ステートメントをどのように構築するべきかについて悩んでいます。

public short[][] Brighten(short[][] original){

    short[][] result1 = new short[original.length][original[0].length];

    for(int i =0;i< result1.length; ++i){
        for(int j = 0;j<result1[0].length;++j){
            result1[i][j] = (short) (20 + original[i][j]);
            //work on this if statement
            if (original[i][j]> 255){
               result1[i][j] = (short)(20 - original[i][j]);
            }

        }
    }   



    return result1;
}
4

2 に答える 2

1

こうあるべきだと思います

public short[][] Brighten(short[][] original){

    short[][] result1 = new short[original.length][original[0].length];

    for(int row =0;row< result1.length; row++){
        for(int col = 0;col<result1[row].length;col++){
        if (original[col][row] + 20) < 255) {
            result1[col][row] = original[col][row] +20;
        } else {
            result1[col][row] = 255;
        }         

        }
    }   
    return result1;
}

このコードでは、明るくした後の値(+20)が255未満の場合は元の値が最初にチェックされ、結果にセットが追加されますが、明るくした結果が255を超える場合は、最大値として255に設定されます。

コメントで質問があれば、私の答えを理解していただければ幸いです:)

于 2013-03-24T03:37:07.477 に答える
0
for ( int i = 0; i < result1.length; i++ ) {

    for ( int j = 0; j < result1[0].length; j++ ) {

        if ( original[i][j] + 20 < 255 ) {
            result1[i][j] = original[i][j] + 20;
        } else {
            result1[i][j] = 255;
        }
    }
}
于 2013-03-24T03:32:32.853 に答える