我使用以下代码从ImageView获取位图。此图像不会保存在我的设备上的任何其他位置。我想将此图像上传到在线mysqli数据库中。但是,要这样做,我需要先减小文件的大小。我发现了很多关于此的链接,但是它们都需要将文件保存在设备上然后使用FileOutputStream
。我正在寻找一种方法来减小文件大小,以便可以使用Volley API轻松传输(我目前正在接收内存异常耗尽或管道错误)。因此,我正在寻找一种方法来修改此代码,以便能够显着减小文件大小,同时仍然保持可以在移动设备上舒适地显示的质量。原始图像是从相机直接拍摄的,因此尺寸非常大。这是我的代码:
ImageView pic_holder = (ImageView) findViewById(R.id.picturedisplay);
Bitmap bitmap = ((BitmapDrawable)pic_holder.getDrawable()).getBitmap();
ByteArrayOutputStream stream=new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 90, stream);
byte[] image=stream.toByteArray();
String img_str = Base64.encodeToString(image, 0);
我想减少传递给我的Volley方法的img_str的大小。