我阅读了很多关于 inSampleSize OutOfMemory 困境的讨论。
无法得到一个好的解决方案,所以我问了一个问题。
我目前正在加载一个 inSampleSize=4 的位图。
这将给我一个大小为 648x388 的位图。
原始磁盘大小为 2592x1592。
我在 648x388 位图上写入文本并将其保存回磁盘。
我在 648x388 上写作,因为 2592x1592 给了我 OutOfMemory 。
它的工作方式是while
循环保存 1-10 个 648x388 位图。
我想更改此循环以保存 1-10 个 2592x1592 位图。
如何安全加载 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++;
}
}
任何帮助都会很感激。