【发布时间】:2012-06-17 17:38:12
【问题描述】:
在预览帧中,我得到 ImageFormat.RGB_565 中的字节 []。 现在我想将此 byte[] 转换为 int[] 以便我可以进行一些像素操作。
我该怎么做?
ps。到目前为止,我是这样做的,但似乎很不优化:
public void onPreviewFrame(byte[] data, Camera camera) { ...
ByteBuffer bf = ByteBuffer.wrap(data);
mBitmap = Bitmap.createBitmap(mWidth, mHeight, Bitmap.Config.RGB_565);
mBitmap.copyPixelsFromBuffer(bf);
然后我这样做确实得到 int[] 中的像素:
int bitmapArray[] = new int[originalWidth * originalHeight];
mBitmap.getPixels(bitmapArray, 0, originalWidth, 0, 0,
originalWidth, originalHeight);
}
【问题讨论】:
-
这似乎是合理的。您可以尝试手动逐像素转换,但可能不会更快。