Подтвердить что ты не робот

Загрузить Bitmap с RGB_565 через Picasso

Есть ли способ передать либо bitmap-config, либо заставить этот BitmapConfig? Я бы не хотел этого делать с помощью Transformation(), так как это потребует большего количества процессора, чем нужно, и я не уверен, что это делается перед кешем (моя основная причина заключается в том, что изображения в кеше не должны потреблять столько памяти)

4b9b3361

Ответ 1

Я нашел решение - у picasso 2.2.0 теперь есть API для этого - раньше использовал 2.1.1, и для этого не было API. Похоже на это:

picasso.load(url).config(Bitmap.Config.RGB_565).into(target);

Ответ 2

Я нашел хорошее решение, которое работает очень хорошо и 100%
(Извините, но ответ @ligi не работает для меня])
Используйте этот класс util для любых изменений растрового изображения picasso (здесь RGB565)
Примечание также, что Picasso строит одноэлементный класс
Таким образом, эти изменения будут охватывать все остальные (также если вы не планируете использовать RGB565 везде)

import com.squareup.picasso.Transformation;

public class Config565Transformation implements Transformation {

    @Override
    public Bitmap transform(Bitmap source) {
        Bitmap resultBitmap = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.RGB_565);
        Canvas canvas = new Canvas(resultBitmap);
        Paint paint = new Paint();
        paint.setFilterBitmap(true);
        canvas.drawBitmap(source, 0, 0, paint);
        source.recycle();
        return resultBitmap;
    }

    @Override
    public String key() {
        return Config565Transformation.class.getSimpleName();
    }
}

и просто используйте его

Picasso.with(getContext())
    .load(url)
    .transform(new Config565Transformation())
    .into(imageView);

Ссылка: https://habrahabr.ru/post/218453/