Как загрузить изображения из удаленного блоба MySQL с помощью такой библиотеки, как Picasso, Glide или Universal Image Loader?

У меня есть удаленная база данных MySQL, где есть капли изображений, которые я хочу загрузить.

Я пытался загрузить их с помощью Picasso, Glide или Universal Image Loader, потому что я собираюсь сделать это с использованием потоков и кэша.

Как выполнить запрос POST, отправив параметры с помощью ($ _POST в PHP) и получив JSONObject с закодированным изображением, и, наконец, библиотека загрузит его в представление изображения? Какой самый лучший вариант?

Например, чтобы передать ссылку с php и каким-либо образом передать параметры ..:

String user_id = "0"; //Whatever

Picasso.with(this).load("http://myhost.com/load_image.php?id="+user_id).into(imageView);

Мой PHP возвращает JSONObject со строкой «image» = (изображение, закодированное в BASE 64).

1

Решение

Если вы используете Glide, вы можете попробовать создать ModelLoader. Вы можете реализовать свой запрос внутри DataFetcher, разобрать байты вашего изображения из объекта JSOBObject и вернуть InputStream содержащие данные в вашем BLOB-объекте. Возможно, вы захотите создать собственный тип данных, поэтому Glide знает, какой ModelLoader использовать:

JSONImageModel glideModel = new JSONImageModel(url);

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

@Override
void registerComponents(Context context, Glide glide) {
glide.register(JSONImageModel.class, InputStream.class, new JSONImageModelLoader.Factory());
}

Любые запросы на модель вашего типа модели будут затем направлены на ваш пользовательский ModelLoader, который будет извлекать данные и передавать их в существующие декодеры Glide:

Glide.with(fragment)
.load(new JSONImageModel(url))
.into(imageView);

Вы можете найти больше информации о регистрации пользовательских ModelLoader на Glide страница конфигурации. Хотя он предназначен для загрузки изображений с переменным размером, есть также вики-страница, описывающая создание пользовательского загрузчика модели, что может быть полезно.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector