我通过以下方式获取我的ARGB_8888位图的像素数据:
public void getImagePixels(byte[] pixels, Bitmap image) {
// calculate how many bytes our image consists of
int bytes = image.getByteCount();
ByteBuffer buffer = ByteBuffer.allocate(bytes); // Create a new buffer
image.copyPixelsToBuffer(buffer); // Move the byte data to the buffer
pixels = buffer.array(); // Get the underlying array containing the data.
}
但是,我想将这些数据转换为每个像素存储在3字节(BGR)的格式,而不是每个像素存储在四个字节(ARGB)的格式。
非常感谢您的帮助!
pixels = buffer.array()
不会按照你的期望执行。你是想要返回像素数组,还是将它们复制到预先分配的像素数组中? - Harald K