java实现生成水印照片

java实现生成水印照片

java实现生成水印照片


import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;

import javax.imageio.ImageIO;

public class test {
    public static void main(String[] args) throws IOException {
        // 定义水印文字
        String watermarkText = "水印文字";

        // 定义水印文字的字体和样式
        Font watermarkFont = new Font("Arial", Font.BOLD, 46);
        AffineTransform watermarkTrans = new AffineTransform();
        watermarkTrans.rotate(Math.toRadians(-45), 0, 0);
        watermarkFont = watermarkFont.deriveFont(watermarkTrans);

        // 定义水印文字的颜色
        Color watermarkColor = Color.WHITE;
        //透明度
        AlphaComposite alpha = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3f);


        // 获取文件夹路径
        String folderPath = "/Users/local/image";

        try {
            // 遍历文件夹中的所有照片
            File folder = new File(folderPath);
            File[] files = folder.listFiles(new FilenameFilter() {
                public boolean accept(File dir, String name) {
                    return name.toLowerCase().endsWith(".jpg") || name.toLowerCase().endsWith(".jpeg");
                }
            });

            for (File file : files) {
                // 读取照片
                BufferedImage image = ImageIO.read(file);

                // 创建Graphics2D对象,用于在照片上绘制水印
                Graphics2D g2d = (Graphics2D) image.getGraphics();

                // 设置水印文字的字体和颜色
                g2d.setFont(watermarkFont);
                g2d.setColor(watermarkColor);

                g2d.setComposite(alpha);

                // 计算水印文字的位置
                FontMetrics fontMetrics = g2d.getFontMetrics();
                int textWidth = fontMetrics.stringWidth(watermarkText);
                int textHeight = fontMetrics.getHeight();
                // 计算水印文本的位置
                int x = (image.getWidth() - textWidth) / 2;
                int y = (image.getHeight() - textHeight) / 2;

                // 在照片上绘制水印文字
                g2d.drawString(watermarkText, x, y);
                g2d.dispose();

                // 保存图片
                ImageIO.write(image, "jpg", file);
            }
        }catch (Exception e){

        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
生成水印代码需要使用 Java图片进行处理,下面是一个示例代码,可以在图片生成文字水印: ``` import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class WatermarkExample { public static void main(String[] args) { try { // 读入图片文件 File file = new File("input.jpg"); Image image = ImageIO.read(file); // 新建一个图片 BufferedImage bufferedImage = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_RGB); // 获取图形上下文 Graphics2D g = bufferedImage.createGraphics(); // 绘制图片 g.drawImage(image, 0, 0, image.getWidth(null), image.getHeight(null), null); // 设置水印颜色 g.setColor(Color.LIGHT_GRAY); // 设置水印字体 g.setFont(new Font("Arial", Font.BOLD, 80)); // 设置水印文字透明度 g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.5f)); // 在图片上绘制水印 g.drawString("EXAMPLE", 10, 80); // 释放图形上下文 g.dispose(); // 将图片写入文件 ImageIO.write(bufferedImage, "JPEG", new File("output.jpg")); } catch (IOException e) { e.printStackTrace(); } } } ``` 在这段代码中,我们首先读入了一个图片文件,然后使用 `Graphics2D` 对象在图片上绘制了一个文字水印。最后,我们将图片写入了一个文件。 请注意,这段代码仅仅是一个

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值