图像转换为字节数组和base64不保留高度

本文关键字:base64 保留 高度 数组 转换 字节 字节数 图像 | 更新日期: 2023-09-27 18:09:34

我开发了一个Android应用程序,它可以捕获照片并将其发送到web服务,这是用c#编写的。

在Android应用程序中,我将图像转换为字节数组,并再次转换为base64字符串,并将其传递给web服务。

问题是图片上传成功,但是图片的大小太小。例如,当我打开照片时,分辨率是1100x1200,但当它上传到服务器时,尺寸是150x200。

有人知道是什么导致了这个问题吗?

当我在其他设备上打开照片时,大小和分辨率也不同。

图像转换为字节数组和base64不保留高度

尝试以下代码转换图像并将其发送到服务器。

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);