0

我想将表示图像的两个字节数组(因此它们的大小相同)组合成第三个字节数组,该数组将是两个起始图像的平均值。这是我目前正在尝试的代码:

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

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

我在 Eclipse 中得到的是一个错误,告诉我“类型不匹配:无法从 int 转换为字节。” 谁能看到我要去哪里错了?

非常感谢

4

3 回答 3

1

java 在算术运算中将字节转换为整数。只需将结果转换为 (byte),因为您知道它不会溢出。

于 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 回答