首页 > 代码库 > Java 实现图片水印

Java 实现图片水印

我们经常可以看到网上一些图片都有水印,我就看了一些教程,也自己简单实现了下,再记录一下!

 

添加水印的过程

1.创建图片缓存对象 (BufferImage)---> 2.创建Java绘图工具对象(Graphics2D) ---> 3.使用绘图工具对象将原图画到缓存图片对象上

---> 4.使用绘图工具对象将水印文字图片放到缓存图片对象上 ---> 5.使用图像编码工具类,将缓存图像输出保存到电脑中

 

public class TextWaterMark {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        File file = new File("D://big59000.jpg");
        textmark(file,"HELLO WORLD");
    }

    /**
     * @param file
     *            图片文件对象
     * @param text
     *            添加的水印文字
     */
    public static void textmark(File file, String text) {
        try {
            Image image = ImageIO.read(file);

            BufferedImage bufferImage = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_RGB);// 1.创建图片缓存对象

            Graphics2D g = bufferImage.createGraphics(); // 2. 创建Java绘图工具对象
            
            g.drawImage(image, 0, 0, image.getWidth(null), image.getHeight(null), null);//3.将原图通过绘图工具画到图片缓存对象中
            
            g.setFont(new Font("微软雅黑",Font.BOLD,30));
            g.setColor(Color.GREEN);//设置水印文字的 字体和颜色
            g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.3f));
            
            g.drawString(text, 200, 50);//4.将文字添加到缓存图片对象中
            g.dispose();
            
            OutputStream os = new FileOutputStream("D://waterText.jpg");
            ImageIO.write(bufferImage, "JPG", os);//通过图片编码工具,将缓存图片保存到本地
            
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

实现效果:(文字的颜色 位置可以自己调整)

技术分享

 

Java 实现图片水印