Я прочитал много дискуссий о дилемме 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++;
}
}
любая помощь будет благодарна.