java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java全图背景水印

Java实现全图背景水印的示例详解

作者:全村最野的狗

这篇文章主要为大家详细介绍了如何利用Java实现全图背景水印的方法,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下

给图片添加水印的优点

给图片添加水印的缺点

添加全图水印

import java.awt.AlphaComposite;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class TransparentWatermark {
    public static void main(String[] args) {
        // 读取原图片
        BufferedImage image = null;
        try {
            image = ImageIO.read(new File("original.jpg"));
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 获取图片的宽度和高度
        int width = image.getWidth();
        int height = image.getHeight();
        // 创建一个图片缓存对象
        BufferedImage newImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        // 获取图片的画笔
        Graphics2D g = newImage.createGraphics();
        // 将原图片绘制到缓存图片上
        g.drawImage(image, 0, 0, width, height, null);
        // 字体大小
        int size = 20;
        // 设置水印的字体样式
        g.setFont(new Font("微软雅黑", Font.BOLD, size));
        // 设置水印的颜色
        g.setColor(Color.red);
        // 旋转30度
        g.rotate(Math.toRadians(30), width / 2, height / 2);
        // 设置水印图片的透明度
        g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.3f));
        // x轴间距 应该改为动态计算字符串宽度
        int xHeight = 160;
        // y轴间距
        int yHeight = 80;
        // 设置水印的位置
        for (int i = 0; i < width / xHeight + 1; i++) {
            for (int j = 0; j < height / yHeight + 1; j++) {
                g.drawString("Hello World!", i * xHeight, j * yHeight + size);
            }
        }
        // 释放图形上下文使用的系统资源
        g.dispose();
        // 保存带水印的图片
        try {
            ImageIO.write(newImage, "jpg", new File("watermarked-full.jpg"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

到此这篇关于Java实现全图背景水印的示例详解的文章就介绍到这了,更多相关Java全图背景水印内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文