Java对GIF的简单删帧操作

本文介绍了如何使用Java处理GIF动态图,通过GifDecoder和AnimatedGifEncoder类实现读取、删除第一帧并重新编码,解决GIF预览显示问题。
摘要由CSDN通过智能技术生成

问题简介

最近在一些网站爬了一些搞笑动态图片,没想到保存好之后预览竟然是是这样:

这里写图片描述

用图片浏览器逐帧看了一下,原来每一张图片第一帧都是类似空白的画面,所以预览的缩略图也是第一张画面。

那么如果能用代码读取到GIF的每一帧,删除后在合并为一个新GIF那问题就解决了。

于是找了下Java 操作GIF图片的类库,最后在GitHub上找到了这个:

animated-gif-lib-for-java

方法简介

整个工程主要就两个java文件,一个用于解码的GifDecoder类,一个用于编码的AnimatedGifEncoder,另外有两个辅助类复制进来即可。

GifDecoder类

主要方法有:

  • public int read(String name)

    指定需要解码的GIF图片路径,还有两个重载方法,支持读取InputStreamBufferedInputStream

  • public int getDelay(int n)

    获取指定帧的延迟时间。

  • public int getFrameCount()

    获取GIF图片的帧数

  • public int getLoopCount()

    获取GIF图片的播放次数,0表示无限循环播放

  • public BufferedImage getFrame(int n)

    获取指定帧的图像数据

AnimatedG
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值