Open tangrun opened 1 year ago
代码里获取的几个图片地址包括拼接的那个地址有时候均是webp,导致下载后在本地是webp格式
解决方法也很简单,直接下载原图,是常见的格式直接保存,如果是webp静态图直接BitmapFactory就可以转png输出,webp动图可以用glide的一个webp扩展库解码成一帧一帧的Bitmap,再用glide的gif库生成gif文件输出
webp动图相关 依赖 //gifencoder implementation 'com.github.bumptech.glide:gifencoder-integration:4.9.0' // webpdecoder implementation "com.github.zjupure:webpdecoder:2.3.4.13.2" 代码 Glide glide = Glide.get(this); GifBitmapProvider gifBitmapProvider = new GifBitmapProvider(glide.getBitmapPool(), glide.getArrayPool());
byte[] bytes = FileIOUtils.readFile2BytesByMap(webpImgFilePath); WebpHeaderParser.WebpImageType type = WebpHeaderParser.getType(bytes); boolean animatedWebpType = WebpHeaderParser.isAnimatedWebpType(type); WebpImage webp = WebpImage.create(bytes); ByteBuffer byteBuffer = ByteBuffer.wrap(bytes); WebpDecoder webpDecoder = new WebpDecoder(gifBitmapProvider, webp, byteBuffer, 1, WebpFrameCacheStrategy.AUTO); AnimatedGifEncoder animatedGifEncoder = new AnimatedGifEncoder(); animatedGifEncoder.start(dir.getAbsolutePath() + File.separator + "test.gif"); animatedGifEncoder.setRepeat(webpDecoder.getNetscapeLoopCount()); for (int i = 0,i1 = webpDecoder.getFrameCount(); i < i1; i++) { webpDecoder.advance(); Bitmap bitmap = webpDecoder.getNextFrame(); int delay = webpDecoder.getNextDelay(); animatedGifEncoder.setDelay(delay); animatedGifEncoder.addFrame(bitmap); } animatedGifEncoder.finish(); byteBuffer.clear(); webpDecoder.clear();
能打包发一下安装包嘛?
大佬 怎么用的呀?可以帮忙打包个安装包吗
代码里获取的几个图片地址包括拼接的那个地址有时候均是webp,导致下载后在本地是webp格式
解决方法也很简单,直接下载原图,是常见的格式直接保存,如果是webp静态图直接BitmapFactory就可以转png输出,webp动图可以用glide的一个webp扩展库解码成一帧一帧的Bitmap,再用glide的gif库生成gif文件输出
webp动图相关 依赖 //gifencoder implementation 'com.github.bumptech.glide:gifencoder-integration:4.9.0' // webpdecoder implementation "com.github.zjupure:webpdecoder:2.3.4.13.2" 代码 Glide glide = Glide.get(this); GifBitmapProvider gifBitmapProvider = new GifBitmapProvider(glide.getBitmapPool(), glide.getArrayPool());