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");
}
}
为图片添加水印图片
最新推荐文章于 2024-10-13 19:23:05 发布