Android - 上传到服务器时的图像质量

时间:2013-03-03 16:04:44

标签: android image upload resolution

经过数小时的调查和梳理各种教程和提示,我已经用完了选项并决定发布我的问题。

我所看到的是,当用户从照片库中选择图像并将该图像上传到我的服务器时,图像的大小会大幅减少。

我记得在某个地方看到一个提示,从图库中选择时的标准行为是缩略图而不是完整图像。真的吗?这是我的相关代码:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType("image/*");
intent.putExtra(MediaStore.EXTRA_OUTPUT, getTempUri());             
startActivityForResult(intent, PICK_FROM_FILE);

然后,我检索我创建的文件并执行此操作(这是我丢失质量的地方???):

Bitmap bitmap = BitmapFactory.decodeStream(new FileInputStream(tempFile1));

然后,这是我将其转换为ByteArray的逻辑:

Bitmap bmp = BitmapFactory.decodeFile(fileString);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte [] ba = stream.toByteArray();

为了更进一步,我希望能够裁剪图像并保持尺寸与原始尺寸成比例。例如,如果图像的原始大小是2000x2000并且用户将图像垂直缩小一半,我希望最终结果为1000x1000。 任何见解或提示将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

尝试使用

**

  

bmp.compress(Bitmap.CompressFormat.PNG,100,stream)

**;

还阅读以下给出的链接以了解其中的差异。 PNG vs. GIF vs. JPEG vs. SVG - When best to use?