【发布时间】:2023-04-02 03:53:01
【问题描述】:
我正在使用以下代码来获取灰度图像的 R、G、B 值(它们都是相同的) 但是输出给了我负值。
为什么会这样?我完全糊涂了。
for (int i=0;i<bb.getWidth();i++){
for (int j=0;j<bb.getHeight();j++){
long temp=bb.getPixel(i, j);
int a=(int)temp;
ByteBuffer b = ByteBuffer.allocate(4);
b.putInt(a );
byte[] result = b.array();
Log.d("gray value is=", String.valueOf((int)result[1]));
// Log.d("gray value is=", String.valueOf(getLastBytes(a)));
}
}
这里的结果[1]应该对应于'R'值。那么它是如何消极的呢?
【问题讨论】:
-
检查结果变量的大小,灰度没有RGB,它只有二维
-
@Nadosh 这有什么帮助?
-
@Nadosh 你误解了......在android中的灰度存储方面,有8个字段......灰度图像在存储方面具有相等的R,G,B字节。例如。 temp 的值类似于 133585214
-
灰度是二维的,你不能得到 r,g,b ;还要检查 'a' 本身的值
-
@Nadosh 你请阅读它。 a 的值非常大,相当于十六进制值的十进制表示。