因此,要将图像发送到 Web 服务器,我需要将其编码为 base64,然后在服务器端解码。
这就是我所关注的。
但是我在这行代码中得到了 OutOfMemoryException:
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
并且图像大小为1mb。那么,有什么替代方法可以做到这一点?
我读到这个:
建议使用MultipartEntity。但是我到底在哪里可以找到这些库?因为其中 1 个链接已损坏。
代码:
Uri selectedImageUri = data.getData();
String selectedImagePath = getPath(selectedImageUri);
try {
File imageFile = new File(selectedImagePath);
Bitmap bitmap = BitmapFactory.decodeFile(imageFile
.getAbsolutePath());
setImage.setImageBitmap(bitmap);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] b = baos.toByteArray();
base64code = Base64.encodeToString(b, Base64.DEFAULT);
} catch (Exception e) {
e.printStackTrace();
}
可能一种方法可能是降低质量。但是如果我将它设置为20或30并且图像已经是低质量 1(取自低端设备)。我可能会得到一个质量很差的图像。
做一些检查大小并根据它降低质量的事情。我不认为是个好主意。
谢谢你