2011-07-15 86 views
3

我注意到,在將jpeg文件轉換爲位圖後,大小差不多減半,這是正常的嗎?我做這樣的事情:Android JPEG到位圖=大小減小

bmp1 = BitmapFactory.decodeFile(Environment.getExternalStorageDirectory() 
          + "/Test/test" + System.currentTimeMillis() 
          + ".jpg"); 
    ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
    bmp1.compress(Bitmap.CompressFormat.JPEG, 100, stream); 
    byte[] byteArray = stream.toByteArray(); 
    System.out.println(byteArray.length); 
+0

您似乎正在解壓縮jpeg並將其壓縮爲jpeg ...因此,如果它較小,則必須以比原始質量更低的質量進行壓縮。 – Torp

+1

雖然其他答案是正確的,如果解碼位圖最初是用相機或其他數字設備拍攝的圖像解碼並重新壓縮它將刪除所有可以高達65,535字節的Exif數據。只是要記住。 –

回答

5

您的代碼解碼JPEG成位圖,然後再次重新壓縮成JPEG。重新壓縮可能會降低文件大小,但也會降低圖像的質量。

Jpeg壓縮(即使在質量100)也不是無損的。