Редактирование изображения перед кэшированием в универсальном загрузчике изображений

Есть ли способ как-то отредактировать изображения, например добавить водяной знак к изображению прямо перед его кешированием? Таким образом, каждый раз, когда View (GridView в моем случае) обновляется, водяной знак не добавляется снова и снова в методе instanceItem адаптера, что добавляет задержку ко всему процессу.

Необязательное чтение: я собираю изображения (прямо как мозаику), сделанные с помощью моего приложения для камеры. Они хранятся на SD-карте, но из-за скремблирования пользователь не может использовать изображение из галереи и вынужден использовать мое приложение, которое расшифровывает изображения во время выполнения и показывает правильное изображение пользователю. Этот процесс позволяет мне предложить бесплатную пробную модель для моего приложения, а изображения можно использовать снаружи, если пользователь заплатит за приложение.

Проблема в том, что все работает нормально, кроме сетки для галереи. Что происходит, так это то, что каждый раз, когда изображение выбирается с помощью длительного нажатия (для редактирования и т. д.), представление сетки обновляется, и все изображения перезагружаются и, следовательно, снова расшифровываются, это добавляет дополнительную задержку к загрузке, и общее взаимодействие с пользователем ухудшается. Есть ли способ просто расшифровать изображения перед их кэшированием, чтобы этого не произошло?


person Faraz Hassan    schedule 27.11.2013    source источник


Ответы (1)


Прежде всего, вы должны создать собственную реализацию BitmapProcessor.

Если вы хотите обработать изображения перед сохранением в кэш диска, используйте ImageLoaderConfiguration..discCacheExtraOptions(..., processor). Обработка будет выполняться для каждого изображения перед сохранением на диск.

Если вы хотите обработать изображения перед сохранением в кэш памяти, используйте DisplayImageOptions.preProcessor(processor). Обработка будет выполняться для задач, которые получат опции с этим процессором.

person nostra13    schedule 15.12.2013
comment
возможно ли создать две версии одного и того же битампа (полученного с одного и того же URL-адреса) - предварительно обработанную и оригинальную? Я пытаюсь реализовать эффект размытия затухания, и мне нужны оба изображения. Как можно хранить оба в кеше диска и использовать их? - person vir us; 30.10.2014
comment
Вы можете сохранить несколько размеров на диске и в кеше. Манипулируйте размером для одного и попытайтесь увидеть, как это работает. Это просто предложение, без попытки его реализовать. - person Ionut Negru; 30.04.2015