`
lavafree
  • 浏览: 535336 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

对图片添加文字的封装类

    博客分类:
  • Java
阅读更多

 

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下需要安装对应的字库

0
1
分享到:
评论

相关推荐

    C#添加文字水印,图片水印,程序实例源代码

    使用vs2015编辑,可以直接运行查看源代码 文字水印可改变水印大小,水印位置,水印透明。 图片水印可改变水印大小,水印位置,水印透明。 内有直接封装好的类可以直接运行,懒人福利

    C#图片水印生成类(图片、文字、透明水印)

    C#图片水印生成类 使用方法很简单,就是把这个类放到文件的App_Code中,然后定义一个实例,便可以操作。 完全封装,代码全部共享。 优点: 1。可以随心所欲选择生成图片水印还是文字水印 2。可以选择生成的位置和...

    PHP添加水印,压缩,剪切的封装操作图片类.zip

     }这是一个可以操作图片的类库,可以给图片添加水印,压缩图片,剪切图片。 * 文字水印 * @param [type] $font 字体 * @param [type] $content 内容 * @param [type] $size 文字大小 * @param [type] $col ...

    java生成二维码工具类(带logo和文字说明) 很实用

    java 使用zxing生成二维码(带logo和文字说明)已经封装 使用起来很方便 下载下来直接调用传入参数就可以

    封装C++对office Word操作.rar

    通过学习封装好的Word操作类,安装好Office后直接将封装好的两个类添加到C++项目中,就可以直接进行编译引用 直接将封装好的整个文件导入C++程序中进行编译 1、打开指定位置的Word文档(隐藏打开)。 2、在...

    OC Extension UIImage+WaterMark(图片+水印+文字标识).zip

    * 给图片加水印图片 * * @param image 水印图片 * @param imgRect 水印图片所在位置,大小 * @param alpha 水印图片的透明度,0~1之间,透明度太大会完全遮盖被加水印图片的那一部分 * * @return 加完水印的...

    Delphi编程图象融合程序

    它可以批量的对您的数码照片进行相关的特效处理,如加盖印章,添加文字,图像的优化以及各种图像格式转换,比例缩放等等,在PhotoShop中需要专业的图像处理技能才能够实现的效果被封装在这个软件中,使您可以轻松...

    ios-分段选择.zip

    在别人的封装类做了修改包括文字颜色添加背景图片,左右添加按钮

    C#基础类库

    OWCChart统计图的封装类 2.Cookie&Session;&Cache;缓存帮助类 CacheHelper C#操作缓存的帮助类,实现了怎么设置缓存,怎么取缓存,怎么清理缓存等方法,只需要调用方法就可以实现 CookieHelper C#操作Cookie的...

    fengzhuang_C++_to_ office Word.rar

    通过学习封装好的Word操作类,安装好Office后直接将封装好的两个类添加到C++项目中,就可以直接进行编译引用 直接将封装好的整个文件导入C++程序中进行编译 1、打开指定位置的Word文档(隐藏打开)。 2、在指定...

    C#基类库(苏飞版)

    OWCChart统计图的封装类 2.Cookie&Session&Cache缓存帮助类 CacheHelper C#操作缓存的帮助类,实现了怎么设置缓存,怎么取缓存,怎么清理缓存等方法,只需要调用方法就可以实现 CookieHelper C#操作Cookie的...

    电子商务商城网站代码

    添加商品(添加成功后转到添加成功页(信息有:图片、所属分类,商品名称、修改些商品、继续添加、商品管理等)) 分类目录 基本信息 介绍及图片 扩展属性 关联商品 商品分类管理 | 添加:对商品类别添加,及...

    明日科技C#开发入门及项目实战

    实例064 封装类实现一个简单的计算器 实例065 通过结构计算矩形的面积 实例066 通过结构计算圆形的面积 实例067 使用面向对象思想查找字符串中的所有数字 实例068 通过类的多态性确定人类的说话行为 第7章 异常处理...

    vc++ 应用源码包_1

    一个视频捕捉类对摄像头的操作。 VC+++暴风影音(Media+Player+Classic)源码 知道的人不多,但提起国内的暴风影音,我想知道的人就多了,其实暴风影音就是Media Player Classic,暴风影音只是同我一样从Gabest官方下载到...

    java范例开发大全源代码

     实例155 实现加减乘除的方法 240  8.3 面向对象的设计模式 241  实例156 Singleton单例模式 242  实例157 招聘(简单工厂模式) 243  实例158 同学聚会(工厂方法模式) 244  实例159 图书展(抽象...

    TS/M2TS视频转换工具

    tsMuxeR是国外高清爱好者特别针对针对高清类视频编写的一款TS 封装免费软件,可以直接从TS, M2TS, MPG,VOB ,EVO, MKV 等格式里导入音视频。...3. 可以为视频添加文字水印和图片水印,剪辑视频,滤镜处理,调整比例等。

    《C#经典编程220例》.(明日科技).【带书签】-共3部分

    实例064 封装类实现一个简单的计算器 106 实例065 通过结构计算矩形的面积 107 实例066 通过结构计算圆形的面积 109 实例067 使用面向对象思想查找字符串中的所有数字 110 实例068 通过类的多态性确定人类的说话行为...

Global site tag (gtag.js) - Google Analytics