2015-12-22 9 views
0

Я создаю приложение для обработки изображений, которое требует довольно больших таблиц поиска. В настоящее время у меня есть таблицы, сохраненные как .txt-файлы в каталоге ресурсов/raw приложения, как массив значений 3x4913 (3 для R, G, B). Загрузка всех этих (9) LUT вверх по мере запуска приложения занимает очень медленное 25 или более секунд.Ошибка Android BitmapFactory.decodeResource() или альтернативные варианты загрузки больших LUT

Мой коллега предложил вместо этого сохранить данные LUT в качестве изображений в формате png, который я сделал, создавая 9 разных изображений шириной 1 и высотой 4913. Я поместил их в папку с возможностью рисования и попробовал декодирование их используют BitmapFactory.decodeResource(), , который работает для любых других доступных без ошибок. Когда я делаю это с LUT картинки и нажмите кнопку «Просмотр Bitmap» в отладчике, он говорит:

«Ошибка при оценке выражения: Метод выбросил исключение" Java.Lang.IllegalArgumentExpression»

Я даже попытался использовать некоторые параметры BitmapFactory, но с тем же результатом:

BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inScaled = false; 
options.outHeight = 4913; 
options.outWidth = 1; 

// Error here 
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), lutIds[n], options); 

bitmap.getPixels(pixels, 0, 1, 0, 0, 1, 4913); 

Любые предложения? Или, альтернативно, любые идеи, как еще я мог бы быстро загрузить данные при каждом запуске приложения. Максимальное значение для каждого номера - 255, поэтому их можно хранить в шортах.

Спасибо!

Примечание: LUT PNGs показать штраф в любом изображении программы просмотра

+0

«Загрузка всех этих (9) LUT вверх по мере запуска приложения занимает очень медленное 25 секунд или более» - код генерирует класс Java, содержащий LUT. Включите этот источник Java в свое приложение. "Какие-либо предложения?" - разместить всю трассировку стека Java. – CommonsWare

ответ

0

Обновление:

Оказывается, все это работает нормально и единственная проблема в том, что Android-студия отказывается показывать определенный размер Кажется, растровые изображения во время отладки. Ошибка новичков!

Для тех, кому интересно, загрузка данных из файла .txt заняла 28-30 секунд на моем телефоне (Xperia Z3), тогда как преобразование данных в png с использованием python и загрузка png вместо этого занимает крошечные 0,1 секунды!