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。
可壓縮性,因此生成的文件大小,取決於圖像! –
它不依賴於操作系統,它取決於該特定設備的攝像頭。 – Riser
@ ErnestFriedman-Hill是對的。想象一下,在一張紙上拍一張黑點的照片,這張照片可以非常嚴格地壓縮,與分辨率或操作系統無關,因爲照片中沒有太多信息(變化,熵,不管)。 – arynaq