安卓:SD卡上保存图像的原始大小(Android: Save image on SD card wi

2019-09-23 00:05发布

当我从摄像机捕获(从设备主屏幕)中的图像,并检查SD卡上的图像的大小,它示出了300-500 KB之间。

但是,当我在使用相机意图我的应用程序捕获图像,并将其保存在SD卡上(在一个新文件夹),它显示5-10 KB之间的图像尺寸。

这是我使用保存在SD卡上的图像拍摄的onActivityResult照片后的代码:

Bitmap bit = (Bitmap) data.getExtras().get("data");
ByteArrayOutputStream bao = new ByteArrayOutputStream();
bit.compress(Bitmap.CompressFormat.JPEG, 100, bao);
byte[] ba = bao.toByteArray();
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "My - Images");
File f = new File(imagesFolder, "test.jpg");
f.createNewFile();
FileOutputStream fo = new FileOutputStream(f);
fo.write(ba);
fo.flush();
fo.close();

如何将其保存为原始大小的图像(300-500 KB)?

并且有一种方式来获得图像尺寸之前,我将它保存在SD卡上?

谢谢

Answer 1:

您正在使用以下压缩收到的位图对象:

bit.compress(Bitmap.CompressFormat.JPEG, 100, bao);

这是你的位图被存储在一个压缩格式的原因。

此外,您还可以使用bit.getHeight()bit.getWidth()让你的位图的尺寸。 您可以使用bit.getByteCount()让你的位图的实际大小



Answer 2:

检查在这里接受了答案,希望它可以为你工作

Android相机意图:如何获得全尺寸的照片?



Answer 3:

首先尝试使用下面的代码找出图片的大小

Camera mCamera = null;
Camera.Parameters camParams = mCamera.getParameters();
Size camSize = camParams.getPictureSize(); 

如果你得到的图片大小为5-10 KB,那么就没有什么不对您的代码,您可能需要重新访问您的相机参数,看看您所设置的质量。



文章来源: Android: Save image on SD card with its original size