2014-06-09 76 views
0

我與位圖工作,有一些問題需要幫助: 我的應用程序的工作原理如下:圖像質量很差時加載/保存位圖

  1. 加載JPG圖片文件(1)從SD卡到bitmap1
  2. 將此位圖1保存爲新的JPG文件(2)。
  3. 加載新的JPG圖片(2)文件bitmap2
  4. 保存bitmap2到新的JPG文件(3)....
  5. ....一再重複

現在我可以加載/將位圖保存到文件,但加載/保存後問題是圖像質量降低。 所以如果我加載/保存東西10次,所以我的形象變得醜陋。 這是我的代碼:

private void saveBitmapToFile(String imgPath) { 

    Log.e("Filename-----------------", imgPath); 

    // Decode image file to bitmap 
    BitmapFactory.Options options = new BitmapFactory.Options(); 
    // options.inPreferredConfig = Bitmap.Config.ARGB_8888; 
    Bitmap bitmap = BitmapFactory.decodeFile(imgPath, options); 

    // Get filename 
    long currentMili = System.currentTimeMillis(); 
    currentName = currentMili + ""; 
    String filePath = FOLDER_PATH + currentMili + ".jpg"; 

    // Save bitmap to new file 
    try { 

     File file = new File(filePath); 
     FileOutputStream fOut = new FileOutputStream(file); 
     bitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut); 
     fOut.flush(); 
     fOut.close(); 
    } catch (Exception e) { 

     e.printStackTrace(); 
    } 
} 

回答

1

您正在重新壓縮有損文件格式。你會得到這樣的圖像文物。如果您出於某種原因需要這樣做,請使用像png這樣的無損格式。

+0

感謝您的幫助。 但我不能使用PNG,因爲我必須添加一些信息到圖像的exif(PNG不支持)。 – user3579893