在将数据发布到 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 选项。
提前感谢您的帮助!