我开发了一款Android应用,可以捕获照片并将其发送到使用C#编写的网络服务。
在Android应用程序中,我将该图像转换为字节数组,然后再将其转换为base64字符串并将其传递给Web服务。
问题是图片上传成功但图片尺寸太小。例如。当我打开照片时,分辨率为1100x1200,但当它在服务器上传时,尺寸为150x200。
有谁知道可能导致此问题的原因?
当我在另一台设备上打开照片时,尺寸和分辨率也不同。
答案 0 :(得分:1)
尝试使用以下代码进行图像转换并发送到服务器。
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);