经过数小时的调查和浏览各种教程和技巧后,我已经没有其他选择,决定发布我的问题。
我所看到的是当用户从照片库中选择一张图片并将该图片上传到我的服务器时,图片的尺寸被大幅缩小。
我记得在某个地方看到一个提示,即从图库中选择的标准行为是缩略图而不是完整的图像。这是真的吗?以下是我的相关代码:
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。非常感谢您提供任何见解或建议。谢谢。