2017-02-01 13 views
0

私は外出例外の質問を探しましたが、私の問題のための方法を見つけることができませんでした。画像を処理するアプリケーションがあります。私は画像の各ピクセルのRGB値を取得する必要があります。小さいサイズなのでwhatsappファイルから画像を選択するとできますが、ギャラリーから画像を選択したい場合(カメラで撮影した場合)、カメラから直接写真を撮りたい場合はoutofmemeory例外があります。画像のすべてのピクセル情報が必要なので、私は画像を縮小したくありません。アンドロイドで例外メモリ例外を処理する方法は?

イメージのファイルと名前の情報を文字列として持っていますが、以下のように文字列をデコードするとこの例外が発生します。

imgDecodableString = intent3.getStringExtra("BMP"); 
rotatedBitmap = BitmapFactory.decodeFile(imgDecodableString); 

この問題を解決する方法はありますか? ありがとうございます。

+0

https://developer.android.com/reference/android/graphics/BitmapRegionDecoder.html – CommonsWare

+0

ビットマップのサイズに関係なく、メモリがリークしていないことを確認してください。https://developer.android.com/studio/ profile/investigate-ram.html –

+0

imgDecodableStringはbase64文字列ですか? –

答えて

0

アプリケーションタグのマニフェストファイルでこのコード行を使用すると、Outofmemory例外がこれを試して解決します。

アンドロイド:あなたは画像を縮小したくない場合はlargeHeap =「true」を

0

、あなたが画像の各部分をデコードするBitmapRegionDecoderを使用して、代わりにデコード画像全体のビットマップを処理することができます。