读书人

Java替多张图片添加水印

发布时间: 2012-11-07 09:56:10 作者: rapoo

Java为多张图片添加水印

import java.awt.Graphics;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import javax.imageio.ImageIO;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder;public final class ImageUtils {/** * 这个方法能够将一张图片绘制到另一张图片之上 *  * @param pressImg *            水印图片 * @param targetImg *            被写水印的图片 */public final static void pressImage(String pressImg, String targetImg) {try {// 初始化被写水印的图片File _file = new File(targetImg);Image src = ImageIO.read(_file);int width = src.getWidth(null);int height = src.getHeight(null);// 创建图片缓冲区BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);Graphics g = image.createGraphics();g.drawImage(src, 0, 0, width, height, null);// 初始化水印图片,一般使用图片软件处理为半透明File _filebiao = new File(pressImg);Image src_biao = ImageIO.read(_filebiao);int width_biao = src_biao.getWidth(null);int height_biao = src_biao.getHeight(null);// 将水印图片设置在目标图片的右下角位置g.drawImage(src_biao, width - width_biao - 10, height - height_biao- 10, width_biao, height_biao, null);// 水印操作结束g.dispose();// 将缓冲区中的信息写入图片FileOutputStream out = new FileOutputStream(targetImg);JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);encoder.encode(image);out.close();} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {// 将F:/dtshop/tupian目录下的所有文件,全部加上水印File file = new File("F:/dtshop/tupian");String[] files = file.list();for (int i = 0; i < files.length; i++) {String tempUrl = "F:/dtshop/tupian/" + files[i];pressImage("F:/dtshop/dhshop.png", tempUrl);}}}

?

读书人网 >编程

热点推荐