在Android上我有时会使用图片执行以下操作。
它永远不会超过bitmapPicture.compress行 - 它似乎只是坐在那里并挂起。
上面我获得字节数的行返回40000。
在压缩'
之后,我从未看到压缩完成或任何其他输出try {
final int COMPRESSION_QUALITY = 100;
String encodedImage;
ByteArrayOutputStream byteArrayBitmapStream = new ByteArrayOutputStream();
Log.e("Error","compress" + bitmapPicture.getByteCount());
bitmapPicture.compress(Bitmap.CompressFormat.PNG,
COMPRESSION_QUALITY, byteArrayBitmapStream);
Log.e("Error","compress done");
byte[] b = byteArrayBitmapStream.toByteArray();
Log.e("Error","bytear");
encodedImage = Base64.encodeToString(b, Base64.DEFAULT);
Log.e("Error","JSONDATA encodedImage Returned");
return encodedImage;
} catch (Exception e) {
ErrorLogger.AddError(e.getMessage(), 199);
Log.e("Error","JSONDATA Error"+e.getMessage());
return null;
}
答案 0 :(得分:0)
尝试拨打
bitmapPicture.setConfig(Bitmap.Config.ARGB_8888);
压缩之前。否则,你能提供多一点吗?我们可以看到您声明/加载位图的位置吗?
答案 1 :(得分:0)
尝试使用此代码:
Bitmap decoded = BitmapFactory.decodeStream(new ByteArrayInputStream(b.toByteArray()));
Log.e("Compressed dimensions", decoded.getWidth()+" "+decoded.getHeight());