Java实现给图片添加可设置透明度的中文文字水印(附代码示例)
以下是一个使用Java和Java的图像处理库ImageIO和Graphics2D来给图片添加中文文字水印并设置透明度的示例代码: ```java import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class ImageWatermark { public static void main(String[] args) { try { // 读取原始图片文件 File inputFile = new File("input.jpg"); BufferedImage inputImage = ImageIO.read(inputFile); // 创建输出图片文件 File outputFile = new File("output.jpg"); BufferedImage outputImage = new BufferedImage(inputImage.getWidth(), inputImage.getHeight(), BufferedImage.TYPE_INT_RGB); // 在输出图片上绘制水印文字并设置透明度 Graphics2D g2d = outputImage.createGraphics(); g2d.setFont(new Font("宋体", Font.BOLD, 30)); // 设置字体和大小 g2d.setColor(Color.BLACK); // 设置文字颜色 String watermarkText = "这是水印文字"; // 设置要添加的水印文字 g2d.drawString(watermarkText, inputImage.getWidth() / 2 - g2d.getFontMetrics().stringWidth(watermarkText) / 2, inputImage.getHeight() / 2); // 定位水印文字位置 g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f)); // 设置透明度为50% g2d.drawImage(inputImage, 0, 0, null); // 将原始图片绘制到输出图片上,确保水印文字位于原始图片之上 g2d.dispose(); // 释放资源 // 将输出图片保存到文件 ImageIO.write(outputImage, "jpg", outputFile); } catch (Exception e) { e.printStackTrace(); } } } ``` 在上述代码中,我们首先使用`ImageIO`类读取原始图片文件,并将其存储在一个`BufferedImage`对象中。然后,我们创建一个新的`BufferedImage`对象作为输出图片,并将原始图片绘制到输出图片上。接下来,我们使用`Graphics2D`对象绘制水印文字,并将其定位在输出图片的合适位置。我们将输出图片保存到文件。 在绘制水印文字时,我们使用`AlphaComposite`类的`SRC_OVER`模式设置透明度为50%。你可以根据需要调整透明度值来控制水印的可见性和清晰度。在示例代码中,我们将透明度设置为50%,这样可以看到水印文字的轮廓但不会影响原始图片的清晰度。你可以根据实际需要调整透明度值来达到更好的效果。 ######[AI写代码神器 | 643点数解答 | 2024-02-22 16:18:20]
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)422
- Java实现链表反转:迭代与递归双解法详解及开发实战指南(DeepSeek | 1409点数解答 | 2026-03-15 15:09:29)49
- 巧用 CDN 搭建含照片轮播、社交链接与 AI 对话的单页个人网页(字节豆包 | 485点数解答 | 2024-10-28 23:31:13)259
- 巧用 CDN 搭建单页个人网页:含照片轮播、社交链接与 AI 对话界面 (阿里通义 | 1752点数解答 | 2024-10-28 23:32:45)246
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)324
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1201
- jQuery 实现动态操作 DOM:打造可增删任务的待办事项列表应用(百度文心 | 1015点数解答 | 2024-10-26 23:41:22)444
- jQuery 打造实用待办事项列表:输入添加、点击删除一步到位!(阿里通义 | 1139点数解答 | 2024-10-29 08:44:48)360
- jQuery 实现动态操作 DOM:打造带添加与删除功能的待办事项列表应用(阿里通义 | 687点数解答 | 2024-10-29 09:25:06)375
- jQuery 实战:打造可添加与删除任务的待办事项列表应用(字节豆包 | 499点数解答 | 2024-10-29 20:40:48)284
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)363
- “广”加密会变“歧”?常见加密算法里并无此结果! (阿里通义 | 136点数解答 | 2023-12-18 13:46:31)254