今天分享一个:通过Java代码,给图片添加文字。

比如下面这个图片,我们在左下角就添加了一个文字版的水印,那么这是如何实现的呢 ?

目录

【1】获取原图片对象

(1.1)读取本地图片

(1.2)读取网络图片

【2】创建画笔

【3】添加文字水印

(3.1)如何确定水印位置 ?

【4】获取处理图片

【5】源代码


【1】获取原图片对象

首先,第一步,肯定是要让我们的程序,拿到需要处理的图片。

我们程序获取图片的方式,通常有两种,一种是通过下载到本地,从本地读取;另外一种就是通过网络地址进行获取。

(1.1)读取本地图片

比如,我们将图片下载到了我们计算机本地(E:\imgs目录下),那么我们直接在main函数中,通过下面这段代码,就可以获取到图片对象。

// 读取图片文件
File file = new File("E:/imgs/test.png");
System.out.println("图片名称:" + file.getName());
System.out.println("图片大小:" + file.length() / 1024 + " kb");
// 将文件对象转化为图片对象
BufferedImage image = ImageIO.read(file);
System.out.println("图片宽度:" + image.getWidth() + " px");
System.out.println("图片高度:" + image.getHeight() + " px");

代码效果如下:

(1.2)读取网络图片

如果图片是一个网络图片,我们可以直接获取它的地址进行下载,相关代码如下(网络图片的名称和类型,取决于下载者)。

URL url = new URL("https://zyq2022.oss-cn-chengdu.aliyuncs.com/test.png");
BufferedImage image = ImageIO.read(url.openStream());
System.out.println("图片宽度:" + image.getWidth() + " px");
System.out.println("图片高度:" + image.getHeight() + " px");

代码效果如下:

【2】创建画笔

经过上面的描述,我们已经获取到了原始图片,接下来我们还需要创建一个画笔,后面我们写出的文字样式,完全则由它来决定。它可以设置颜色,字体大小,字体样式等。

// 创建画笔(image为上一步的图片对象)
Graphics2D pen = image.createGraphics();
// 设置画笔颜色为白色
pen.setColor(Color.WHITE);
// 设置画笔字体样式为微软雅黑,斜体,文字大小为20px
pen.setFont(new Font("微软雅黑", Font.ITALIC, 20));

相关说明:

(1) pen.setColor(Color.WHITE);

这行代码的意思是将画笔颜色设置为白色。

其他颜色还有:WHITE(白色)、LIGHT_GRAY(浅灰色)、GRAY(灰色)、DARK_GRAY(深灰色)、BLACK(黑色)、RED(红色)、PINK(粉红色)、ORANGE(橘黄色)、YELLOW(黄色)、GREEN(绿色)、MAGENTA(紫红色)、CYAN(青色)、BLUE(蓝色)

如果上面颜色都不满足你,或者你还想设置下字体透明度,你可以改为如下格式:

pen.setColor(new Color(179, 250, 233, 100));

这里的四个参数分别为 RGBA(不懂RGBA的点这里),四个参数的范围均是0-255;

(2)pen.setFont(new Font("微软雅黑", Font.ITALIC, 20));

Font.PLAIN(正常),Font.BOLD(粗体),Font.ITALIC(斜体)

【3】添加文字水印

下面这行代码就是添加文字水印的核心代码。

// 这三个参数分别为你的文字内容,起始位置横坐标(px),纵坐标位置(px)。
pen.drawString("我是图片水印", 30, 550);

(3.1)如何确定水印位置 ?

首先,大家要明白,我们在说图片上的坐标,它一个表示法,具体如下:

那么,我们如何确定我们水印的图片其实坐标呢?

我们可以将图片首先保存到本地,然后右键单击,选择画图工具类打开它。

打开后,我们将鼠标光标移动到我们需要添加文字的地方(如红色箭头处),则底部就会显示对应位置的坐标(蓝色箭头处),那么这个坐标我们就可以拿到,然后写入到程序代码里了。

【4】获取处理图片

经过上面三次操作后,我们的图片添加文字就已经处理完成了,但他现在还保存在Java对象中,我们需要将他保存到本地,我们才能看得到效果(如:这里我将处理的图片保存到 test2.png 中)。

// 创建新图片文件
File file = new File("E:/imgs/test2.png");
// 将处理好的图片数据写入到新图片文件中
FileOutputStream fos = new FileOutputStream(file);
ImageIO.write(image, "png", fos);

最后执行代码,我们看到在原图片文件夹下,多了一个 test2.png 的图片。

我们打开 test2.png 图片后,可以看到文字水印已经添加成功了。

【5】源代码

最后将前面解读的整个源码放在下面,供大家参考:

package com.zyq.util;import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;import javax.imageio.ImageIO;public class ImgTest {public static void main(String[] args) throws IOException {// 读取本地图片文件// File file = new File("E:/imgs/test.png");// System.out.println("图片名称:" + file.getName());// System.out.println("图片大小:" + file.length() / 1024 + " kb");// 将文件对象转化为图片对象// BufferedImage image = ImageIO.read(file);// 获取网络图片URL url = new URL("https://zyq2022.oss-cn-chengdu.aliyuncs.com/test.png");BufferedImage image = ImageIO.read(url.openStream());// 创建画笔Graphics2D pen = image.createGraphics();// 设置画笔颜色为白色// pen.setColor(Color.WHITE);pen.setColor(new Color(179, 250, 233, 200));// 设置画笔字体样式为微软雅黑,斜体,文字大小为20pxpen.setFont(new Font("微软雅黑", Font.ITALIC, 20));// 写上水印文字和坐标pen.drawString("我是图片水印", 30, 550);// 创建新图片文件File file = new File("E:/imgs/test2.png");// 将处理好的图片数据写入到新图片文件中FileOutputStream fos = new FileOutputStream(file);ImageIO.write(image, "png", fos);}
}

Java实现在图片上添加文字(水印)相关推荐

  1. java实现给PDF文件添加图片水印,java实现给PDF文件添加文字水印

    接上一篇,pdf跟tif 是一起做的 java实现 1.给PDF文件添加图片水印: public static void waterMark1(String inputFile,String outp ...

  2. java生成二维码(在图片上生成二维码(二维码带logo)并且在图片上添加文字标签)

    1pom.xml <!--生成二维码--> <dependency><groupId>cn.hutool</groupId><artifactId ...

  3. JAVA 画图 给图片底部添加文字标题

    此文是本人2018年写的一个小功能 后来不玩csdn了 很多人问问题我都没看到,对不住了各位!!! 建议直接使用image-combiner功能强大 https://gitee.com/dromara ...

  4. iOS在图片上添加文字或图片

    Objective-C在图片上添加文字,请使用如下方法: /**在图片上添加文字,只支持英文,如果想添加其他文字,请看下面的方法@param image 图片@param string 要添加的文字@ ...

  5. python怎么加图片_怎么在图片旁边加文字 python如何在图片上添加文字 - 励志 - 52资讯网...

    Python在图片上添加文字的两种方法:OpenCV和PIL 一.OpenCV方法 1.安装cv2 pip install opencv-python 2.利用putText方法来实现在图片的指定位置 ...

  6. 在图片上添加文字并生成图片

    在图片上添加文字并生成图片 开发工具与关键技术:Visual Studio 2015 作者:李德新 撰写时间:2019年6月04日 在我们的日常生活中,我们经常能看到各样格式的表单,而且有时候我们还要 ...

  7. html和css的图片怎么加,html+css如何在图片上添加文字

    html+css如何在图片上添加文字 2018-09-14 效果如图 思路:div相对定位. 图片默认定位, 文字绝对定位 参考代码 html> /*div1下面 包含着1个图片和1段文字*/ ...

  8. python在图片上添加文字 - cv2模块的安装与使用

    一.cv2的安装 一般来说,在pycharm中安装包的方式如下: 点击"+"之后,在搜索框中输入"cv2",点击下方的"Install package ...

  9. 如何将已有图片做成透明水印_如何用Photoshop在图片上添加透明水印?

    我们经常会在网上看到一些漂亮的图片上有添加各种水印,添加水印可以让图片有一个标记,也可以防止别人盗用你的成果.那么图片上的这些水印是怎么添加的呢?今天,小编就给大家介绍用Photoshop软件来制作图 ...

最新文章

  1. Css中路径data用法
  2. 5.7.4.framebuffer应用编程实践3
  3. Eclipse(STS) 初次搭建Spring Cloud项目之声明式REST调用+负载均衡实现Feign(四)
  4. ES5-10 原型、原型链、闭包立即执行函数、插件开发
  5. 数据库 数据库编程二
  6. NVIDIA ECCV18论文:超像素采样网络助力语义分割与光流估计(代码将开源)
  7. 股票撤销st申请多长时间批复?
  8. context:component-scan标签的use-default-filters属性的作用以及原理分析
  9. js的5种继承方式——前端面试
  10. append()方法_python之append方法容易踩的坑
  11. 移动端JS事件、移动端框架
  12. 组态王与三菱PLC编程软件GXWorks2通过OPC数据库进行动态仿真,只要写三菱程序即可实现组态王动态画面
  13. 贪心算法解决哈夫曼编码问题
  14. Android 深度学习gan网络,使照片变为动漫化风格,毕业设计源码,android studio编译
  15. 电脑误删了计算机 怎么恢复,电脑误删文件怎么恢复 电脑误删文件恢复方法【步骤介绍】...
  16. EXCEL工作表保护密码忘记,撤消工作表保护
  17. 将北京时间转换为世界协调时
  18. Java 如何判断一个字符串中是否包含某一 子字符串
  19. MySql小数点处理
  20. J2EE达内18天笔记

热门文章

  1. 对话行癫:解密阿里云顶层设计和底层逻辑 1
  2. Varscan2 Call snp_indel
  3. 什么是数据源?如何配置数据源?
  4. 全民枪王服务器正在维护,《全民枪王》游戏黑屏怎么办? 游戏进不去解决方法...
  5. 1736. Latest Time by Replacing Hidden Digits
  6. 关闭微信这几个功能,不然真的会泄露微信隐私
  7. uniapp做自己的启动页
  8. 算法分析之常用符号大O、小o、大Ω、大Θ、w符号
  9. conda冗余package的清理(.conda/pkgs)
  10. 基于区块链的去中心化身份技术有哪些应用前景?