Java 为图片添加水印(图片水印,文字水印)

2014-07-28· 3922 次浏览
```java 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; public final class ImageUtils {     public ImageUtils() {     }     /**      * 把图片印刷到图片上      *       * @param pressImg      *            --水印文件      * @param targetImg      *            --目标文件      * @param x      *            --x坐标      * @param y      *            --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 filePress = new File(pressImg);             Image srcPress = ImageIO.read(filePress);             int wideth_biao = srcPress.getWidth(null);             int height_biao = srcPress.getHeight(null);             g.drawImage(srcPress, (wideth - wideth_biao), (height - height_biao), 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);             g.setColor(Color.RED);             g.setFont(new Font(fontName, fontStyle, fontSize));             g.drawString(pressText, wideth - fontSize - x, height - fontSize / 2 - 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("E:/logo.png", "E:/ceshi.jpg", 0, 0);     } } ```