网上找了很多资料都没有生成gif图片的例子。但是生成水印的文件到不少,如果我们把gif图片合成水印后,图片就不动了,所以我写了个小例子供大家参考。(如果你想在某个图片上打印个动感图标,这个类就能很好地实现,前提是你必须先将动感图标分解成几张单独的gif图片。当然你可以用程序来实现。)

要用到  AnimatedGifEncoder 类自行下载

=========================================

package com.test;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.image.BufferedImage;

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

import javax.imageio.ImageIO;

public class MakeOver {

public static void main(String[] args) {

MakeOver mo = new MakeOver();

mo.CreateGIF("e:/pic/test.gif","e:/map.gif","e:/pic/",82,395);

//参数列表:输出图片地址,加水印的图片地址,动态图标地址,纵坐标,横坐标

//注意:此 e:/pic/ 目录下的文件如下 1.gif 2.gif 3.gif 。。。。

}

public void CreateGIF(String outputFileName,String path1,String path2,int height,int weidth){

try {

// 指定Frame的文件

AnimatedGifEncoder e = new AnimatedGifEncoder();

OutputStream os = new FileOutputStream(outputFileName); //输出图片

e.start(os);// 开始处理

e.setQuality(15); //设置图片质量

e.setRepeat(0);  //设置循环

e.setDelay(500); // 设置延迟时间

MakeOver abc = new MakeOver();  //实例化图片合成类

String path3 = "";     //动态图片地址

for (int i = 1; i < 3; i++) {  //此处只添加 2 张gif图片

path3 = path2 + i +".gif";

BufferedImage im = abc.pressImage(path3,path1, weidth, height);

e.addFrame(im);// 循环加入Frame

}

e.finish();

} catch (Exception e) {

System.out.println(e);

e.printStackTrace();

}

}

public  BufferedImage pressImage(String pressImg,

String targetImg, int x, int y) {

try {

// 目标文件

File _file = new File(targetImg);

Image src = ImageIO.read(_file);

int wideth = src.getWidth(null);

int height = src.getHeight(null);

BufferedImage image = new BufferedImage(wideth, height,

BufferedImage.TYPE_INT_RGB);

Graphics g = image.createGraphics();

g.drawImage(src, 0, 0, wideth, height, null);

// 水印文件

File _filebiao = new File(pressImg);

Image src_biao = ImageIO.read(_filebiao);

int wideth_biao = src_biao.getWidth(null);

int height_biao = src_biao.getHeight(null);

g.drawImage(src_biao, x,

y, wideth_biao, height_biao, null);

// 水印文件结束

g.dispose();

return image;

} catch (Exception e) {

System.out.println(e);

e.printStackTrace();

}

return null;

}

}

java gif图片_java 如何生成动态的gif图片相关推荐

  1. phpgif图片包_php生成动态验证码gif图片

    这是一个通过php生成的动态验证码图片的示例,重点是可以运行哦!下面先发下效果图: 下面是php生成动态验证码需要用到的相关类和函数. /** *ImageCode 生成包含验证码的GIF图片的函数 ...

  2. Photoshop根据图片模板批量生成动态图片

    需求:给定图片模板,在图片上面维护相关数据,把Excel表中的信息一个一个作到图中. 就技术角度而言,这样的操作并没有多少技术含量,然而却需要耗费大量的时间.如果提供的数据是上百条甚至上千条,你是否仍 ...

  3. vue使用qrcodejs2生成带log的二维码图片,vue生成二维码图片中间带log,自定义log

    安装插件 npm install qrcodejs2 --save 在页面中引入 import QRcode from 'qrcodejs2' 普通的二维码 此处的id就是页面中要展示二维码容器的id ...

  4. python绘制动态模拟图-Python 模拟生成动态产生验证码图片的方法

    模拟动态产生验证码图片 模拟生成验证码,首先要做的是生成随机的字母,然后对字母进行模糊处理.这里介绍一下 Python 提供的 Pillow 模块. Pillow PIL:Python Image L ...

  5. python动态验证码_Python 模拟生成动态产生验证码图片的方法

    模拟动态产生验证码图片 模拟生成验证码,首先要做的是生成随机的字母,然后对字母进行模糊处理.这里介绍一下 Python 提供的 Pillow 模块. Pillow PIL:Python Image L ...

  6. python 验证码图片 模拟登录_Python 模拟生成动态产生验证码图片的方法

    模拟动态产生验证码图片 模拟生成验证码,首先要做的是生成随机的字母,然后对字母进行模糊处理.这里介绍一下 Python 提供的 Pillow 模块. Pillow PIL:Python Image L ...

  7. java类索引_java中索引的分类,图片详解

    java的学习是一个漫长而又循环往复不断上升的过程,今天我们再来看一下java索引的分类,并且通过详细的图片解析. 首先,java中的索引主要分为聚簇索引和非聚簇索引. 其中InnoDB主键使用的是聚 ...

  8. java oracle 图片_JAVA读取Oracle中的blob图片字段并显示

    JAVA读取Oracle中的blob图片字段并显示 近期,在给客户做一个Demo页面时,需要用JAVA读取Oracle中的blob图片字段并显示,在此过程中,遇到一些问题,例如:连接Oracle数据库 ...

  9. java 生成纯色图片_java实现切图并且判断图片是不是纯色/彩色图片

    java实现切图并且判断图片是不是纯色/彩色图片 发布时间:2020-08-30 15:45:30 来源:脚本之家 阅读:92 作者:点墨花花 整理文档,搜刮出一个java实现切图并且判断图片是否是纯 ...

最新文章

  1. PXA270-基于ARM9内核Processor外部NAND FLASH的控制实现
  2. LeetCode-剑指 Offer 06. 从尾到头打印链表
  3. 如何将 image 转成 base64 字符串?
  4. php mysql 全文检索_MySQL中文全文检索
  5. Python中出现:AttributeError: module 'numpy' has no attribute 'dtype'问题解决
  6. IOS开发学习笔记024-UIButton和UIImageView的区别
  7. Java正则表达式例子汇总
  8. 通过jQuery获取Select选中的值或文本
  9. oracle查询表在库中所占空间(表名所有字母必须大写‘table_name’)
  10. nginx日志切割脚本
  11. win764位和32位有什么区别_win10系统32位和64位区别详解
  12. java 通过身份证判断性别
  13. php与drupal,什么是Drupal
  14. 如何实现windows命令提示符的tab补全
  15. ios代码混淆-字符串加密的优点和其他破解方法
  16. python连接MySQL数据库的示例代码
  17. python文件查重_文件查重 我使用的是面向局部敏感的最小哈希签名的方法进行文档查重 联合开发网 - pudn.com...
  18. 大数据在车联网行业的实践与应用
  19. rails parameter permit
  20. 手把手教学差异表达基因分析

热门文章

  1. Java中的finalize方法
  2. 计算机光驱无法启用,刻录的系统盘用USB光驱无法启动是怎么回事?
  3. 手机上4G和WIFI情况下抓包总结
  4. 超好用的PDF阅读器——Xodo PDF Reader
  5. Compensating-Transaction模式
  6. 方差分析 球形检验_spss球形检验.PDF
  7. Linux下的Makefile编写与优化
  8. 计算机word求积公式,Word表格使用函数公式 加减乘除 求和,求积,求平均值的图文教程...
  9. 还在烦恼Word怎么转PPT?教你一种方法告别复制粘贴
  10. 忆享科技聚焦|数字经济、视频云、AI数字人、全球5G用户……行业热点资讯一览