图像转换为字节数组和base64不保留高度
本文关键字:base64 保留 高度 数组 转换 字节 字节数 图像 | 更新日期: 2023-09-27 18:09:34
我开发了一个Android应用程序,它可以捕获照片并将其发送到web服务,这是用c#编写的。
在Android应用程序中,我将图像转换为字节数组,并再次转换为base64字符串,并将其传递给web服务。
问题是图片上传成功,但是图片的大小太小。例如,当我打开照片时,分辨率是1100x1200,但当它上传到服务器时,尺寸是150x200。
有人知道是什么导致了这个问题吗?
当我在其他设备上打开照片时,大小和分辨率也不同。
尝试以下代码转换图像并将其发送到服务器。
bm = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory().getPath()+"/MyImages/Image.jpg");
baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 40 ,baos);
byte[] byteArray = baos.toByteArray();
try {
System.gc();
result = Base64.encodeToString(byteArray, Base64.DEFAULT);
} catch (Exception e) {
e.printStackTrace();
} catch (OutOfMemoryError e) {
baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 50, baos);
byteArray = baos.toByteArray();
result = Base64.encodeToString(byteArray, Base64.DEFAULT);
Log.w("LOG", "Out of memory error");
}
Log.v("Image Conversion", result);