Я пытаюсь преобразовать GIF в список, чтобы внести некоторые изменения в каждый кадр.
Я пытался использовать https://gist.github.com/devunwired/4479231, который работал, но не с оптимизированным GIF.
Я нашел библиотеку Glide, которая позволяет манипулировать GIF-файлами.
Я попробовал приведенный ниже код, но в отладке увидел, что никогда не захожу на onRessourceReady, поэтому этот метод не помогает мне получить List.
DrawableRequestBuilder builder = Glide.with(this).load("path");
builder.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
if (resource.isAnimated()) {
target.onResourceReady(new GlideBitmapDrawable(null, ((GifDrawable) resource).getFirstFrame()), null);
GifDrawable gd = (GifDrawable) resource;
Bitmap b = gd.getDecoder().getNextFrame();
}
return true;
}
});
builder.into(new ImageView(this));
Я искал StreamGifDecoder из Glide, но я не понимаю, как использовать / передавать аргументы, и не нашел никакого образца ...
StreamGifDecoder(List<ImageHeaderParser> parsers, ResourceDecoder<ByteBuffer,GifDrawable> byteBufferDecoder, ArrayPool byteArrayPool)
https://bumptech.github.io/glide/javadocs/420/com/bumptech/glide/load/resource/gif/StreamGifDecoder.html
Мне не нужно делать это с Glide, поэтому, если вы знаете какую-либо другую библиотеку, я тоже буду признателен! Спасибо!