2017-04-14 17 views
2

高解像度の画像を読み込み、処理して保存します。 largeHeap="true"オプションがAndroidManifest.xmlにあるにもかかわらず、一部の高解像度イメージがロードされたときに、OOM例外が頻繁に発生しました。androidのビットマップにネイティブヒープを使用する方法

グーグルでは、JNIを使​​用するとAndroid 3.0よりも低いバージョンのネイティブヒープにビットマップを読み込むことができることを知りました。もしそうなら、どうすれば上位バージョンのネイティブヒープをビットマップに使用できますか?まだJNI?

答えて

1

私の意見では、ビットマップ全体を処理する代わりに、ビッグビットマップの各部分をデコードして処理する必要があります。 OOMを避けるのに役立ちます。 BitmapRegionDecoderを使用して、画像から矩形領域をデコードすることができます。それが役立つことを願っています。

+0

感謝をズームすることができあなたの答え。前述のように 'BitmapRegionDecoder'を使用すると、高解像度の画像をロードして処理することができます。しかし、私は各パーツをどのように組み立てて1つのファイルとして保存するのか分かりません。あなたがその方法を知っているなら、私に教えてください。 –

0

私はあなたが「プロセス」によって何を意味することを確認していないが、あなたは、あなたが大規模なデータをロードする必要がある場合は、次のライブラリを使用して、より詳細な情報を抽出することで用

https://github.com/davemorrissey/subsampling-scale-image-view

関連する問題