作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过将图像转换为 base64 字符串将图像上传到我的 Android 应用程序中的服务器。在这种情况下,当我尝试上传从我的相机拍摄的图像时,我的图像质量大大降低并且非常模糊。你能帮我解决这个问题吗?
这是我的代码:
Intent cameraIntent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
Log.i("camera intent", "camera intent");
bitmap = (Bitmap) data.getExtras().get("data");
bitmap = Bitmap.createScaledBitmap(bitmap, 720, 1280, true);
viewImage_imageView.setImageBitmap(bitmap);
UploadImage_textView.setEnabled(true);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.JPEG, 100, bos);
byte[] data = bos.toByteArray();
String file = Base64.encodeToString(data, 0);
Log.i("base64 string", "base64 string: " + file);
new ImageUploadTask(file).execute();
}
}
最佳答案
位图 = (位图) data.getExtras().get("数据");
这将给出相机拍摄的图像的缩略图,这就是您看到模糊图像的原因
Intent cameraIntent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
Uri tempURI = Uri.fromFile(<file path where you want to save image>);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, tempURI);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
然后对于此路径,您将获得相机点击的实际图像,现在将该图像上传到服务器。
关于Android:提高上传到服务器的图像质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33366617/
我是一名优秀的程序员,十分优秀!