2016-07-21 3 views
2

Android webviewでinsampleSizeとcompressの違いは何ですか?私はGoogleのこのトピックについて検索したよう

BitmapFactory.Options options = new BitmapFactory.Options(); 
      options.inPreferredConfig = Bitmap.Config.ARGB_8888; 
      options.inSampleSize = 3; 
      if (bitmap == null) { 
       bitmap = BitmapFactory.decodeFile(filePath, options); 
      } 

は、これは、ファイルのピクセルが300 * 300に* 1000年1000年のように削減されることを意味します。 と

bitmap.compress(CompressFormat.JPEG, 80, bos); 

、サイズ(ファイル容量)が千キロバイトのように低減されることを意味 - > 800キロバイト

それは正しいですか? ...画像をアップロードすると、ファイルが大きい場合はアップロードできませんでした。 (ファイル容量が第1の方法ではなく第2の方法で減少していることを確認しました)

だから私は第1の方法を試みますが失敗します。しかし、私は第二の方法を試して、私は成功した!

私はこの質問をしています。

C.f> ビットマップを切り取った場合、ビットマップは変更されますか?

Bitmap croppedBitmap = null; 
     if (i!=cnt) { 
      if ((croppedStart + pageHeight) > webview.getMeasuredHeight()) { 
       int lastHeight = webview.getMeasuredHeight() - croppedStart; 
       croppedBitmap = Bitmap.createBitmap(bitmap, 0, croppedStart, webview.getMeasuredWidth(),lastHeight-1); 
      } else { 
       try{ 
       croppedBitmap = Bitmap.createBitmap(bitmap, 0, croppedStart, webview.getMeasuredWidth(), pageHeight); 
       }catch(Exception e){ 
        e.printStackTrace(); 
       } 
      } 
      croppedStart += pageHeight; 
      rtn.add(croppedBitmap); 
     } 
これを実行した後、私のビットマップ(元来)はfullBtimapからLast croppedBitmapに変更されます。 またありがとう!

答えて

1

品質はjpegのようなロッシーなフォーマットでしか動作せず、quality of the imageに影響します。 inSampleSize元の画像をサブサンプルする要求。幅と高さの両方に影響します。つまり、元の画像の幅と高さは、最終画像が1/inSampleSizeになります。

+0

hm .. insampleSize make subsamples ...つまり、insampleSizeオプションを指定した場合、元のビットマップはサイズ変更されません。 申し訳ありません...私は正確には分かりません...もっと詳しく説明できますか? – Adrian

+0

inSampleSizeは元のビットマップをサブサンプルします。例えば。 inSampleSize = 2を指定すると、ビットマップは元の – Blackbelt

+0

ああ本当に幅/ 2と高さ/ 2になります??ああ、神様。ありがとう!!それは本当に役に立ちます。私は別の質問があります、他の手では、圧縮オプションは変更されていません??ボリュームにのみ関連していますか? – Adrian

関連する問題