0

在将数据发布到 android 中的数据库之前,我想编写一个算法以将图像大小减小到 1MB 左右。我的图像在字节数组中,我必须将字节数组发送到数据库。

这是我正在尝试的代码,但有时它会在 bm.compress(CompressFormat.JPEG, 100, bos); 线。

代码:

        MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
        if (imgData != null) {
             if (imgData.length > 1048576) {
                 BitmapFactory.Options options = new BitmapFactory.Options();
                 options.inSampleSize = 1;
                 Bitmap bm = BitmapFactory.decodeByteArray(imgData, 0, imgData.length,options);
                 ByteArrayOutputStream bos = new ByteArrayOutputStream();
                 bm.compress(CompressFormat.JPEG, 100, bos);
                 bm.recycle();
                 bm = null;
                 byte[] data = bos.toByteArray();
                 ByteArrayBody bab = new ByteArrayBody(data, "image.jpg");
                 reqEntity.addPart("image_data", bab);
             } else {
                 ByteArrayBody bab = new ByteArrayBody(imgData, "image.jpg");
                 reqEntity.addPart("image_data", bab);
             }

此外,我不想使用 Bitmap.compress,因为我已经在使用 BitmapFactory 选项。

提前感谢您的帮助!

4

0 回答 0