Android 如何将我从相机获得的位图保存到sd卡而不丢失它';s原版尺寸和质量
如何在失去原始大小或质量的情况下将位图图像保存到SD卡,我目前正在使用此代码,但它保存的图像总是比相机捕获的图像的原始大小小得多 找到了解决办法 在遵循KPBird提供的链接后,我发现问题在于摄影机活动如何返回捕获的位图对象 为了保留内存,相机活动将返回捕获照片的缩放图像,因此解决方案是永远不要使用此缩放图像 只需将一个额外的内容传递给摄像机意图,提供保存图像的url,瞧!,捕获的照片保存在您想要的地方,并具有原始比例 代码: 谢谢你,小鸟 访问以下链接Android 如何将我从相机获得的位图保存到sd卡而不丢失它';s原版尺寸和质量,android,Android,如何在失去原始大小或质量的情况下将位图图像保存到SD卡,我目前正在使用此代码,但它保存的图像总是比相机捕获的图像的原始大小小得多 找到了解决办法 在遵循KPBird提供的链接后,我发现问题在于摄影机活动如何返回捕获的位图对象 为了保留内存,相机活动将返回捕获照片的缩放图像,因此解决方案是永远不要使用此缩放图像 只需将一个额外的内容传递给摄像机意图,提供保存图像的url,瞧!,捕获的照片保存在您想要的地方,并具有原始比例 代码: 谢谢你,小鸟 访问以下链接 这可能会有所帮助我试过了,这个链接
这可能会有所帮助我试过了,这个链接,它可以添加一个额外的,相机现在正在按它应该的大小保存捕获的图像,但是当我点击相机上的保存按钮后,整个设备冻结了,奇怪,这是一个双重错误吗?额外的是这样添加的:cameraIntent.putExtra(android.provider.MediaStore.EXTRA_输出,Uri.fromFile(新文件(“/sdcard/tmphassamok.jpeg”);
private void SaveImage(Bitmap bitmap, String strType) {
File sdImageMainDirectory = new File("/sdcard/");
if (sdImageMainDirectory.exists()) {
FileOutputStream fileOutputStream = null;
Date dt = new Date();
String nameFile = "myImage";
int quality = 100;
try {
String strFullImageName;
strFullImageName = UserID + "_" + nameFile + ".jpg";
fileOutputStream = new FileOutputStream(
sdImageMainDirectory.toString() + "/"
+ strFullImageName);
BufferedOutputStream bos = new BufferedOutputStream(
fileOutputStream);
bitmap.compress(CompressFormat.JPEG, quality, bos);
bos.flush();
bos.close();
UploadImage(bitmap, strFullImageName, strType);
} catch (FileNotFoundException e) {
Utilities.LogError(e);
} catch (IOException e) {
Utilities.LogError(e);
} catch (Exception eee) {
Utilities.LogError(eee);
}
} else {
Utilities.LogError("File not Found");
}
}
private static final int CAMERA_PIC_REQUEST = 1337;
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
imageNameToUpload = "myImage.jpeg";
cameraIntent.putExtra( android.provider.MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File( imagePathToUpload+imageNameToUpload)));
startActivityForResult(cameraIntent,
CAMERA_PIC_REQUEST);