我有一个将位图压缩到32K以下的功能。当我得到返回的Bitmap,将其转换为byte []时,大小增加了。 代码演示如下,输出为:
之前:30
之后:85
我是否以错误的方式使用了Bitmap?
ByteArrayOutputStream baos = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG, 100, baos);
int options = 100;
while (baos.toByteArray().length / 1024 > 31 && (count++ < 8)) { // compress to below 32K
baos.reset();
options -= 10;
image.compress(Bitmap.CompressFormat.JPEG, options, baos);
}
ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());
Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);
LL.d("before: " + (baos.toByteArray().length/1024));
// here will return bitmap;
ByteArrayOutputStream output = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, output);
LL.d("after: " + (output.toByteArray().length/1024));