Java添加水印图片

来源:互联网 发布:好看的日剧 知乎 编辑:程序博客网 时间:2024/06/05 07:34
package com.narwell.culturemall.test;import java.awt.Color;    import java.awt.Font;    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;    /*** 给图片加水印* @author iis*/   public final class ImageUtils {         public ImageUtils() {             }     /**         * 把图片印刷到图片上         *          * @param pressImg      *            水印文件         * @param targetImg         *            目标文件         * @param x         * @param y         */        public final static void pressImage(String pressImg, String targetImg,                 int x, int y) {             try {                 File _file = new File(targetImg);                 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);                 Graphics g = image.createGraphics();                 g.drawImage(src, 0, 0, wideth, height, null);                     // 水印文件                 File _filebiao = new File(pressImg);                 Image src_biao = ImageIO.read(_filebiao);                 int wideth_biao = src_biao.getWidth(null);                 int height_biao = src_biao.getHeight(null);                 g.drawImage(src_biao, wideth - wideth_biao - x, height                         - height_biao - y, wideth_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();             }         }             /**         * 打印文字水印图片         *          * @param pressText         *             --文字         * @param targetImg       * --目标图片         * @param fontName       * --字体名         * @param fontStyle       * --字体样式         * @param color          *            --字体颜色         * @param fontSize          *            --字体大小         * @param x          *        --X偏移量         * @param y      * --Y偏移量         */            public static void pressText(String pressText, String targetImg,                 String fontName, int fontStyle, int color, int fontSize, int x,                 int y) {             try {                 File _file = new File(targetImg);                 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);                 Graphics g = image.createGraphics();                 g.drawImage(src, 0, 0, wideth, height, null);                 // String s="www.qhd.com.cn";                 g.setColor(Color.RED);                 g.setFont(new Font(fontName, fontStyle, fontSize));                     g.drawString(pressText,fontSize+x,fontSize                          +y);                 g.dispose();                 FileOutputStream out = new FileOutputStream(targetImg);                 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);                 encoder.encode(image);                 out.close();             } catch (Exception e) {                 System.out.println(e);             }         }             public static void main(String[] args) {             pressImage("C:/Users/Public/Pictures/Sample Pictures/Chrysanthemum - 副本.jpg", "C:/Users/Public/Pictures/Sample Pictures/Desert - 副本.jpg", 20, 20);             pressText("水印文字", "C:/Users/Public/Pictures/Sample Pictures/Chrysanthemum - 副本.jpg","宋体",1,1,25,10, 10);     }    }

0 0