0

我正在从相机和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) 上,保存到 SDCard 的图像大小为 130 KB。

在 JellyBean(4.2) 上,保存到 SDCard 的图像大小为 59.3 KB。

4

1 回答 1

0

当我在压缩和保存时保存从资源加载的位图时,我也观察到同样的事情发生,导致不同 Android 操作系统上的文件大小不同。这与问题中提出的问题略有不同,但可能会提供一些见解。

“也许您从资源中获取位图,在这种情况下,位图尺寸将取决于手机屏幕密度”。推理是以下问题答案的一部分:

如何在不改变位图大小的情况下使位图压缩?

于 2014-04-24T10:43:34.107 回答