inSampleSizeOutOfMemoryのジレンマに関する多くの議論を読みました。
良い解決策が得られないので、質問します。
現在、inSampleSize=4のビットマップを読み込んでいます。
サイズが648x388のビットマップが表示されます。
元のディスク上のサイズは2592x1592です。
648x388ビットマップにテキストを書き込んでディスクに保存しています。
2592x1592がOutOfMemoryを与えるので、私は648x388に書いています。
while
それが機能する方法は、ループに保存される1〜10個の648x388ビットマップが存在する可能性があるということです。
このループを変更して、1-102592x1592ビットマップを保存したいと思います。
2592x1592を安全にロードするにはどうすればよいですか?
解像度が60%以上下がることは気になりません。
ビットマップのサイズが2592x1592と同じである限り。
サイズを維持しながらビットマップを薄くして、
品質を低下させることなく色を削除する方法はありますか?
私の最初の考えは、私が得ることができる最大のビットマップを取得するためにこのようなことをすることでした:私はこれをテストしていませんが、それは悪い方法だと感じています
boolean work = true;
int insample = 2;
BitmapFactory.Options options = new BitmapFactory.Options();
while(work){
try{
options.inSampleSize = insample;
bitmap = BitmapFactory.decodeFile(filePath,options);
work = false;
}catch(Exception e){
insample++;
}
}
どんな助けでもありがたいです。