使用Graphics2D实现图片添加水印

该博客介绍了如何使用Java的Graphics2D类在图片上添加水印,包括读取图片、设置文字和图形,并详细说明了坐标系统的使用,强调了坐标点定位和文字高度的考虑。
摘要由CSDN通过智能技术生成

1、功能目标

        在目标图片上指定位置增加文字说明

2、实现思路

        第一步利用IO操作将图片文件读取至内存中,得到Graphics2D类。这样我们就得到了以图片为底的一张画布。

        第二步使用Graphics2D类在图片上添加想要的文字或者其他图形。

3、代码实现

/**
     * 编辑图片,往指定位置添加文字
     * @param srcImgPath    :源图片路径
     * @param targetImgPath :保存图片路径
     * @param list          :文字集合
	 * @throws Exception 
     */
    public static void writeImage(String srcImgPath, String targetImgPath, List<TextEntity> list) throws Exception {
		File file = new File(targetImgPath);
		if(!file.exists()){
		    //先得到文件的上级目录,并创建上级目录,在创建文件
		    file.getParentFile().mkdir();
	        //创建文件
	        file.createNewFile();
		}
    	try (FileOutputStream outImgStream = new FileOutputStream(targetImgPath);){
            //读取原图片信息
            File srcImgFile = new File(srcImgPath);//得到文件
            Image srcImg = ImageIO.read(srcImgFile);//文件转化为图片
            int srcImgWid
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,可以使用Graphics2D类来添加数字水印。该类是Java 2D API的一部分,提供了一组用于在Java 2D环境中呈现2D图形和文本的方法。 添加数字水印的基本原理是使用Graphics2D对象的drawString方法在图像上绘制文本。为了使文本成为水印,需要将其绘制为半透明的文本。这可以通过设置Graphics2D对象的AlphaComposite属性来实现。 具体步骤如下: 1. 创建一个Graphics2D对象,并将其绑定到要添加水印的图像上。 2. 创建一个Font对象,用于设置水印文本的字体和大小。 3. 创建一个Color对象,用于设置水印文本的颜色。 4. 使用Graphics2D对象的setComposite方法设置半透明属性。 5. 使用Graphics2D对象的drawString方法在图像上绘制水印文本。 6. 释放Graphics2D对象,完成添加水印操作。 下面是一个简单的示例代码,用于在图像右下角添加数字水印: ``` import java.awt.*; import java.awt.image.BufferedImage; public class AddWatermark { public static void addWatermark(BufferedImage image, String watermark) { Graphics2D g = image.createGraphics(); // 设置字体和大小 Font font = new Font("Arial", Font.BOLD, 24); g.setFont(font); // 设置颜色 Color color = new Color(255, 255, 255, 128); g.setColor(color); // 设置半透明属性 AlphaComposite alpha = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f); g.setComposite(alpha); // 绘制水印文本 g.drawString(watermark, image.getWidth()-150, image.getHeight()-20); // 释放Graphics2D对象 g.dispose(); } } ``` 在这个示例中,我们创建了一个名为AddWatermark的类,其中包含一个静态方法addWatermark。该方法接受两个参数:一个BufferedImage对象,表示要添加水印的图像;一个String对象,表示要绘制的水印文本。 在方法中,我们首先创建了一个Graphics2D对象,并将其绑定到图像上。然后,设置字体、颜色和半透明属性,最后使用drawString方法在图像上绘制水印文本。最后,我们释放了Graphics2D对象,完成了添加水印的操作。 需要注意的是,添加水印可能会影响图像的可读性和美观性,因此应该谨慎使用

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值