Как получить растровое изображение из URL-адреса с помощью Coil?

Я хочу загрузить растровое изображение из URL-адреса, а затем использовать API палитры, чтобы получить из него некоторые цвета.

На странице документации я не могу найти код для получения растрового изображения напрямую!

Может кто-нибудь мне помочь?

1 ответ

Решение

Вы можете использовать target метод и приведите drawable к bitmap как

    val loader = ImageLoader(this)
    val req = LoadRequest.Builder(this)
        .data("https://images.dog.ceo/breeds/saluki/n02091831_3400.jpg") // demo link
        .target { result ->
            val bitmap = (result as BitmapDrawable).bitmap
        }
        .build()

    val disposable = loader.execute(req)

Если вы используете сопрограммы, используйте GetRequest (с перегруженным execute метод с suspend) в вашем CoroutineScope как:

  coroutineScope.launch{
    val loader = ImageLoader(this)
    val request = GetRequest.Builder(this)
        .data("https://images.dog.ceo/breeds/saluki/n02091831_3400.jpg")
        .allowHardware(false) // Disable hardware bitmaps.
        .build()

    val result = (loader.execute(request) as SuccessResult).drawable
    val bitmap = (result as BitmapDrawable).bitmap
}
Другие вопросы по тегам