之前有遇到过一个要用多张图片合成gif图的场景,当时是搜索了好久,也没有发现有相关的使用记录。后来找到了实现方式,特此记录。

使用了Github上该project:android-gif-encoder,代码链接见页尾。

主要代码如下:

/**

* 生成gif图

*

* @param file_name 保存文件名

* @param delay 帧之间间隔的时间

*/

private void createGif(String file_name, int delay) {

ByteArrayOutputStream baos = new ByteArrayOutputStream();

AnimatedGifEncoder localAnimatedGifEncoder = new AnimatedGifEncoder();

localAnimatedGifEncoder.start(baos);//start

localAnimatedGifEncoder.setRepeat(0);//设置生成gif的开始播放时间。0为立即开始播放

localAnimatedGifEncoder.setDelay(delay);

if (pics.isEmpty()) {

localAnimatedGifEncoder.addFrame(BitmapFactory.decodeResource(getResources(), R.drawable.pic_1));

localAnimatedGifEncoder.addFrame(BitmapFactory.decodeResource(getResources(), R.drawable.pic_2));

localAnimatedGifEncoder.addFrame(BitmapFactory.decodeResource(getResources(), R.drawable.pic_3));

} else {

for (int i = 0; i < pics.size(); i++) {

// Bitmap localBitmap = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(pics.get(i)), 512, 512);

localAnimatedGifEncoder.addFrame(BitmapFactory.decodeFile(pics.get(i)));

}

}

localAnimatedGifEncoder.finish();//finish

File file = new File(Environment.getExternalStorageDirectory().getPath() + "/GIFMakerDemo");

if (!file.exists()) file.mkdir();

String path = Environment.getExternalStorageDirectory().getPath() + "/GIFMakerDemo/" + file_name + ".gif";

Log.d(TAG, "createGif: ---->" + path);

try {

FileOutputStream fos = new FileOutputStream(path);

baos.writeTo(fos);

baos.flush();

fos.flush();

baos.close();

fos.close();

} catch (IOException e) {

e.printStackTrace();

}

gif_image.setImageURI(Uri.parse(path));

Toast.makeText(MainActivity.this, "Gif已生成。保存路径:\n" + path, Toast.LENGTH_LONG).show();

}

需要源码的同学看这里

android gif转jpg格式文件,android使用多张图片合成gif文件相关推荐

  1. android能用svg格式,关于Android SVG图形:Android SVG图形 – 将当前PNG文件转换为svg格式的缺点...

    我在github上看到了一些工具,现在Lolipop中的矢量drawables允许你使用svg文件. 我发现的一个主要优点是svg文件应该拉伸并保持适当的缩放,因此在拉伸后看起来很清晰. 现在使用sv ...

  2. android 判断图片的格式的,android判断文件是否是图片文件的方法

    判断一个文件是否是图片文件的方法,采用BitmapFactory去decode然后根据返回的Options参数来确定: public static boolean isImageFile(String ...

  3. android批量转换图片格式,使用Android Studio批量转换图片为Webp格式

    简介 Webp是一个现代的图片格式提供优秀的无损和有损压缩.使用Webp我们可以创建更小更丰富的图片. Webp无损图片比PNG图片的size小26%.Webp有损图片在同等SSIM(结构化相似)质量 ...

  4. android 时间戳 转日期格式,在Android中转换为简单日期格式或Unix时间戳日期?

    我收到日期(2015-03-20T06:34:01.831183 + 01:00)从服务器这不是简单的日期格式,我想这种类型的日期转换为简单的日期格式一样(yyyyMMddHHmmssSSSS)在An ...

  5. android 本地图片uri格式不一致,Android本地相册图片URI转换绝对路径

    最近做毕设的时候遇到了这个问题,一直给我报错java.io.notFound啥的啥的,不管怎么修改路径都是报这个错误,今天终于解决了,记录一下解决过程. 首先我们调用系统相册. Intent inte ...

  6. android pdf转jpg格式,在Android中将图片转换为PDF

    我想你正在使用iText Library将文本转换成pdf.使用它将图像转换为pdf. import java.io.*; import com.lowagie.text.*; import com. ...

  7. AVI音视频封装格式学习(五)——h265与PCM合成AVI文件

    不知道是处于版权收费问题还是什么原因,H265现在也并没有非常广泛的被普及.将h265数据合成AVI的资料现在在网上也基本上没有.使用格式化工厂工具将h265数据封装成AVI格式,发现它在封装的时候其 ...

  8. 利用Python讲多张图片合成PDF文件

    前言 一个做美工的朋友需要将多个图片jpg .png 合并起来,PS操作太慢了所以用了python进行完成这个任务 基本环境配置 版本:Python3 系统:Windows 相关模块:PIL pip ...

  9. android 视频转字节,如何将视频文件(.mp4)格式转换为android中的二进制格式?...

    我想在网络服务器上传视频.我得到了我想要以二进制格式传递文件的服务,我该怎么做?如何将视频文件(.mp4)格式转换为android中的二进制格式? 我试图通过base64将视频文件转换为二进制格式.. ...

最新文章

  1. ARM的突破:超级计算机和Mac
  2. Flutter 拨打电话和跳转网页
  3. OpenAI的GPT-3花费了1200万美元,现在放出商用API,人人皆可拿来自动生成文本、编写代码...
  4. [转]RedHat Enterprise Linux 7关闭防火墙方法
  5. Flex+ActionScript
  6. python从数分到数编(part2)--随机数及数组
  7. 【触觉AI】麻省理工研发带550个传感器的触觉手套,通过触摸识别物体|湾区人工智能...
  8. oracle 9i故障恢复,Oracle9i rman备份恢复总结
  9. 安装grid时找不到ASM共享磁盘
  10. UCOS操作系统——软件定时器(八)
  11. [Linux 基础] -- Linux 之 fstab 文件详解
  12. 1055 mysql_MySQL错误1055
  13. openresty 与 java RSA加解密
  14. 微积分专项----MIT GS老师
  15. 不见的何止重城,隐隐的又岂是江树。
  16. 如何人工给电脑加速?(经典知识)
  17. matlab if语句应用
  18. Android Facebook游戏邀请功能
  19. Java实现自制猜数游戏(附源码)
  20. [CUDA学习]5. 常量内存与事件

热门文章

  1. 入职必备两小时入门SVN(二)
  2. 有赞基于ES的搜索系统架构是如何演进的?
  3. MySQL InnoDB count()函数
  4. 阿里云数据中台训练营第一期圆满落幕
  5. 我的小白同事接触白鹭引擎4天,成功做了一款足球小游戏
  6. CentOS7.4中搭建lnmp环境
  7. 史上最贵域名诞生!360斥资1700万美元买360.com
  8. 微信小程序周报(第十一期)-极乐商店出品
  9. 从前M个字母中取N个的无重复排列(回溯)
  10. Dynamic CRM 2013学习笔记(四十二)流程5 - 实时/同步工作流(Workflow)用法图解...