package lava.util;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
public class GIFUtil {
public static void main(String[] args) {
List<DrawTextBean> beans = new ArrayList<DrawTextBean>();
Font font=new Font("msyh",Font.PLAIN,12);
DrawTextBean bean1 = new DrawTextBean(103,113,"你好你好(12345)",Color.black,font);
DrawTextBean bean2 = new DrawTextBean(85,139,"123456",Color.black,font);
DrawTextBean bean3 = new DrawTextBean(270,138,"1231-14567889",Color.black,font);
beans.add(bean1);
beans.add(bean2);
beans.add(bean3);
GIFUtil.GifAddText("E:/Others/pic/buyself.gif","E:/Others/pic/test2.gif", beans );
}
public static void GifAddText(String srcImgPath,String destImgPath,List<DrawTextBean> beans) {
try {
File _file = new File(srcImgPath);
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);
Graphics2D g = image.createGraphics();
g.drawImage(src, 0, 0, wideth, height, null);
for(int i=0;i<beans.size();i++){
g.setColor(beans.get(i).getColor());
g.setFont(beans.get(i).getFont());
g.drawString(beans.get(i).getText(), beans.get(i).x,beans.get(i).y);
}
g.dispose();
GIFEncoder encode = new GIFEncoder(image);
OutputStream output = new BufferedOutputStream(
new FileOutputStream(destImgPath));
encode.Write(output);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package lava.util;
import java.awt.Color;
import java.awt.Font;
public class DrawTextBean {
public DrawTextBean(){
}
public DrawTextBean(int x,int y ,String text,Color color,Font font){
this.x=x;
this.y=y;
this.font=font;
this.text=text;
this.color = color;
}
int x;
int y;
Font font;
String text;
Color color;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public Font getFont() {
return font;
}
public void setFont(Font font) {
this.font = font;
}
public Color getColor() {
return color;
}
public void setColor(Color color) {
this.color = color;
}
}
需要用到GIFEncoder,Linux下需要安装对应的字库
分享到:
相关推荐
使用vs2015编辑,可以直接运行查看源代码 文字水印可改变水印大小,水印位置,水印透明。 图片水印可改变水印大小,水印位置,水印透明。 内有直接封装好的类可以直接运行,懒人福利
C#图片水印生成类 使用方法很简单,就是把这个类放到文件的App_Code中,然后定义一个实例,便可以操作。 完全封装,代码全部共享。 优点: 1。可以随心所欲选择生成图片水印还是文字水印 2。可以选择生成的位置和...
}这是一个可以操作图片的类库,可以给图片添加水印,压缩图片,剪切图片。 * 文字水印 * @param [type] $font 字体 * @param [type] $content 内容 * @param [type] $size 文字大小 * @param [type] $col ...
java 使用zxing生成二维码(带logo和文字说明)已经封装 使用起来很方便 下载下来直接调用传入参数就可以
通过学习封装好的Word操作类,安装好Office后直接将封装好的两个类添加到C++项目中,就可以直接进行编译引用 直接将封装好的整个文件导入C++程序中进行编译 1、打开指定位置的Word文档(隐藏打开)。 2、在...
* 给图片加水印图片 * * @param image 水印图片 * @param imgRect 水印图片所在位置,大小 * @param alpha 水印图片的透明度,0~1之间,透明度太大会完全遮盖被加水印图片的那一部分 * * @return 加完水印的...
它可以批量的对您的数码照片进行相关的特效处理,如加盖印章,添加文字,图像的优化以及各种图像格式转换,比例缩放等等,在PhotoShop中需要专业的图像处理技能才能够实现的效果被封装在这个软件中,使您可以轻松...
在别人的封装类做了修改包括文字颜色添加背景图片,左右添加按钮
OWCChart统计图的封装类 2.Cookie&Session;&Cache;缓存帮助类 CacheHelper C#操作缓存的帮助类,实现了怎么设置缓存,怎么取缓存,怎么清理缓存等方法,只需要调用方法就可以实现 CookieHelper C#操作Cookie的...
通过学习封装好的Word操作类,安装好Office后直接将封装好的两个类添加到C++项目中,就可以直接进行编译引用 直接将封装好的整个文件导入C++程序中进行编译 1、打开指定位置的Word文档(隐藏打开)。 2、在指定...
OWCChart统计图的封装类 2.Cookie&Session&Cache缓存帮助类 CacheHelper C#操作缓存的帮助类,实现了怎么设置缓存,怎么取缓存,怎么清理缓存等方法,只需要调用方法就可以实现 CookieHelper C#操作Cookie的...
添加商品(添加成功后转到添加成功页(信息有:图片、所属分类,商品名称、修改些商品、继续添加、商品管理等)) 分类目录 基本信息 介绍及图片 扩展属性 关联商品 商品分类管理 | 添加:对商品类别添加,及...
实例064 封装类实现一个简单的计算器 实例065 通过结构计算矩形的面积 实例066 通过结构计算圆形的面积 实例067 使用面向对象思想查找字符串中的所有数字 实例068 通过类的多态性确定人类的说话行为 第7章 异常处理...
一个视频捕捉类对摄像头的操作。 VC+++暴风影音(Media+Player+Classic)源码 知道的人不多,但提起国内的暴风影音,我想知道的人就多了,其实暴风影音就是Media Player Classic,暴风影音只是同我一样从Gabest官方下载到...
实例155 实现加减乘除的方法 240 8.3 面向对象的设计模式 241 实例156 Singleton单例模式 242 实例157 招聘(简单工厂模式) 243 实例158 同学聚会(工厂方法模式) 244 实例159 图书展(抽象...
tsMuxeR是国外高清爱好者特别针对针对高清类视频编写的一款TS 封装免费软件,可以直接从TS, M2TS, MPG,VOB ,EVO, MKV 等格式里导入音视频。...3. 可以为视频添加文字水印和图片水印,剪辑视频,滤镜处理,调整比例等。
实例064 封装类实现一个简单的计算器 106 实例065 通过结构计算矩形的面积 107 实例066 通过结构计算圆形的面积 109 实例067 使用面向对象思想查找字符串中的所有数字 110 实例068 通过类的多态性确定人类的说话行为...