从Bitmap Android获取RGB字节数组

时间:2016-11-02 20:42:51

标签: java android image bitmap

我尝试从存储在Android设备上的图片中获取字节数组,但字节数组大小为width * heigth * 2,我需要一个大小为* heigth * 3的字节数组。

我的问题是我需要将图片字节数组发送到需要这种RGB格式的数组的matlab服务器。

这是创建" width * height"的字节数组的代码。尺寸:

            Bitmap photo = BitmapHelper.readBitmap(CameraIntentActivity.this, photoUri);
            if (photo != null) {
                photo = BitmapHelper.shrinkBitmap(photo, 300, rotateXDegrees);

                Bitmap bm = Bitmap.createScaledBitmap(photo, 640, 480, true);

                final int lnth= bm.getByteCount();
                ByteBuffer dst= ByteBuffer.allocate(lnth);
                bm.copyPixelsToBuffer( dst);
                byte[] byteArray = dst.array();

readBitmap方法:

public static Bitmap readBitmap(Context context, Uri selectedImage) {
    Bitmap bm = null;
    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inPreferredConfig = Bitmap.Config.RGB_565;
    options.inScaled = false;
    AssetFileDescriptor fileDescriptor = null;
    try {
        fileDescriptor = context.getContentResolver().openAssetFileDescriptor(selectedImage, "r");
    } catch (FileNotFoundException e) {
        return null;
    } finally {
        try {
            bm = BitmapFactory.decodeFileDescriptor(
                    fileDescriptor.getFileDescriptor(), null, options);
            fileDescriptor.close();
        } catch (IOException e) {
            return null;
        }
    }
    return bm;
}

0 个答案:

没有答案