我正在从相机和onActivityResult()
捕获图像。我将图像重新缩放到800 x 600以及70%的压缩系数。在我这样做的同时,我会针对相同的相机分辨率获得不同的图像尺寸。
Bitmap pic = BitmapFactory.decodeFile(myPath);
Bitmap bitmap = Bitmap.createScaledBitmap(pic, 800, 600, true);
OutputStream os = null;
File file = new File("MyFile.png");
try {
os = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG,70,outputStream);
os.flush();
os.close();
pic = null;
}catch (IOException e){
...
}
下面的数据是两个案例中的5 MP,但不同的设备有不同的Android版本。 我得到的输出是:
在GingerBread(2.3.3)上,保存到SD卡的图像大小为130 KB。
在JellyBean(4.2)上,保存到SDCard的图像大小为59.3 KB。
答案 0 :(得分:0)
当我在压缩和保存导致不同Android操作系统上不同大小的文件时保存从资源加载的位图时,我也观察到了同样的事情。这个问题与问题中的问题略有不同,但可能会提供一些见解。
“也许你从资源中获取位图,在这种情况下,位图尺寸将取决于手机屏幕密度”。推理是对以下问题的回答的一部分: