算法将字节数组图像大小减少到1MB android

时间:2013-06-28 06:10:51

标签: android

我想写一个算法,在将数据发布到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选项。

提前感谢您的帮助!

0 个答案:

没有答案