0

画像を表す2つのバイト配列(同じサイズになるように)を、2つの開始画像の平均となる3番目のバイト配列に結合したいと思います。これが私が現在試しているコードです:

        byte[] facemash = new byte[data1.length];

        for (int i=0; i < data1.length; ++i){
            facemash[i] = ((data1[i]/2)+(data2[i]/2));
        } 

Eclipseで取得しているのは、「型の不一致:intからbyteに変換できません」というエラーです。誰かが私がここで間違っているところを見ることができますか?

どうもありがとう

4

3 に答える 3

1

javaは、算術演算でバイトをintに変換します。オーバーフローできないことがわかっているので、結果を(バイト)にキャストするだけです。

于 2012-12-01T13:34:32.423 に答える
1
facemash[i] = (byte)((data1[i]/2)+(data2[i]/2));
于 2012-12-01T13:35:10.323 に答える
0

試す:

facemash[i] = (byte)((byte)(data1[i]/2)+(byte)(data2[i]/2));
于 2012-12-01T16:17:17.713 に答える