为图片添加水印图片

package com.tz.为图片添加水印;

import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.imageio.ImageIO;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public final class HandleImage {
  /**
   *  
   *  HandleImage 为图片添加水印
   *  创建人:徐京
   *  时间:2015年12月6日20:56:40
   *  @param image 水印图片  targetImage 原始图片
   *  @version 1.0.0
   * 
   */
	
	public static void addImage(String image, String targetImage) {
		FileOutputStream fs = null;
		try {
			// 加载水印图片
			File imageFile = new File(image);
			// 将file对象转换成image对象
			Image src = ImageIO.read(imageFile);
			// 获取水印图片的宽度与高度
			int width = src.getWidth(null);
			int height = src.getHeight(null);
			// 加载目标图片
			File _file = new File(targetImage);
			Image target = ImageIO.read(_file);
			int targetwidth = target.getWidth(null);
			int targetHeight = target.getHeight(null);
			
			// 构建画板
			BufferedImage imageBuffer = new BufferedImage(targetwidth, targetHeight, BufferedImage.TYPE_INT_RGB);
			// 创建画笔
			Graphics2D graphic = imageBuffer.createGraphics();
			// 将目标图片加载到画板之上
			graphic.drawImage(target, 0, 0, targetwidth, targetHeight, null);
			graphic.drawImage(src, (targetwidth - width)/2, (targetHeight - height)/2, width, height, null);
			// 结束图片的绘制
			graphic.dispose();
			// IO流 图片要用字节流输出
			 fs = new FileOutputStream(targetImage);
			JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fs);
			encoder.encode(imageBuffer);
			System.out.println("图片水印生成成功!");
		} catch (Exception e) {
			System.err.println("错误信息: "+e.getMessage());
		}finally{
			try {
				if(fs!=null) fs.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

	}
	
	public static void main(String[]args){
		addImage("C:\\java\\WorkSpace\\Team1\\src\\com\\tz\\为图片添加水印\\tzlogo.png", "C:\\java\\WorkSpace\\Team1\\src\\com\\tz\\为图片添加水印\\tz.jpg");
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值