从GIF获取列表<位图>

时间:2019-07-08 09:13:35

标签: android bitmap gif android-glide animated-gif

我正在尝试将GIF转换为List,以便在每个帧上进行一些修改。

我尝试使用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));

我在寻找Glide的StreamGifDecoder,但我不了解如何使用/传递参数,也找不到任何示例...

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,所以如果您知道任何其他库,我也将不胜感激!谢谢!

0 个答案:

没有答案