为图片添加水印图片

来源:互联网 发布:ubuntu如何使用cd命令 编辑:程序博客网 时间:2024/05/02 02:13
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");}}

1 0