二话不说,直接上代码, 具体注释, 代码里简单的有写: 可以根据我后面给的两张效果图进行测试;

demo测试方法: 直接将如下代码复制到一个java文件中运行main方法即可;

注意: 代码中标记'todo'的地方自行修改;

import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;/*** @use 利用Java代码给图片添加文字(透明图调低点,也可以当做水印)*/
@Slf4j
public class WaterMarkUtils {/*** 编辑图片,往指定位置添加文字* @param srcImgPath    :源图片路径* @param targetImgPath :保存图片路径* @param list          :文字集合*/public static void writeImage(String srcImgPath, String targetImgPath, List<ImageDTO> list) {FileOutputStream outImgStream = null;try {//读取原图片信息File srcImgFile = new File(srcImgPath);//得到文件Image srcImg = ImageIO.read(srcImgFile);//文件转化为图片int srcImgWidth = srcImg.getWidth(null);//获取图片的宽int srcImgHeight = srcImg.getHeight(null);//获取图片的高//添加文字:BufferedImage bufImg = new BufferedImage(srcImgWidth, srcImgHeight, BufferedImage.TYPE_INT_RGB);Graphics2D g = bufImg.createGraphics();g.drawImage(srcImg, 0, 0, srcImgWidth, srcImgHeight, null);for (ImageDTO imgDTO : list) {g.setColor(imgDTO.getColor());                                  //根据图片的背景设置水印颜色g.setFont(imgDTO.getFont());                                    //设置字体g.drawString(imgDTO.getText(), imgDTO.getX(), imgDTO.getY());   //画出水印}g.dispose();// 输出图片outImgStream = new FileOutputStream(targetImgPath);ImageIO.write(bufImg, "jpg", outImgStream);} catch (Exception e) {log.error("==== 系统异常::{} ====",e);}finally {try {if (null != outImgStream){outImgStream.flush();outImgStream.close();}} catch (IOException e) {e.printStackTrace();}}}/*** 创建ImageDTO, 每一个对象,代表在该图片中要插入的一段文字内容:* @param text  : 文本内容;* @param color : 字体颜色(前三位)和透明度(第4位,值越小,越透明);* @param font  : 字体的样式和字体大小;* @param x     : 当前字体在该图片位置的横坐标;* @param y     : 当前字体在该图片位置的纵坐标;* @return*/private static ImageDTO createImageDTO(String text,Color color,Font font,int x,int y){ImageDTO imageDTO = new ImageDTO();imageDTO.setText(text);imageDTO.setColor(color);imageDTO.setFont(font);imageDTO.setX(x);imageDTO.setY(y);return imageDTO;}/*** main方法:* @param args*/public static void main(String[] args) {//=========================================自行发挥================================//todo 自己真实的地址:(如果项目中使用的阿里云,则自行改造'writeImage'方法,接受流对象就好了);String srcImgPath="C:\\Users\\mm\\Desktop\\test.png";    //源图片地址String tarImgPath="C:\\Users\\mm\\Desktop\\test1.png";   //目标图片的地址//==============================================================================//获取数据集合;ArrayList<ImageDTO> list = new ArrayList<>();list.add(createImageDTO("2020/02/02/15:30:30",new Color(102,102,102,100),new Font("微软雅黑", Font.PLAIN, 24), 78, 160));list.add(createImageDTO("账户名称",new Color(102,102,102,100),new Font("微软雅黑", Font.PLAIN, 24), 178, 226));list.add(createImageDTO("1111111",new Color(102,102,102,100),new Font("微软雅黑", Font.PLAIN, 24), 710, 226));list.add(createImageDTO("上海银行",new Color(102,102,102,100),new Font("微软雅黑", Font.PLAIN, 24), 178, 290));list.add(createImageDTO("这是用途",new Color(102,102,102,100),new Font("微软雅黑", Font.PLAIN, 24), 710, 290));list.add(createImageDTO("¥50.00",new Color(255,59,48),new Font("微软雅黑", Font.PLAIN, 36), 270, 366));//操作图片:WaterMarkUtils.writeImage(srcImgPath, tarImgPath, list);//这句代码,自己项目中可以不用加,在这里防止main方法报错的;System.exit(0);}
}/*** 存放文本内容的类*/
@Setter
@Getter
class ImageDTO{//文字内容private String text;//字体颜色和透明度private Color color;//字体和大小private Font font;//所在图片的x坐标private int x;//所在图片的y坐标private int y;
}

执行前的效果:

执行后的效果:

Java-编辑图片,添加文字相关推荐

  1. Java实现添加文字水印、图片水印功能

    Java实现添加水印功能 添加水印 Java 2D API介绍 绘制文字水印 绘制图片水印 循环添加文字水印 添加水印 为图片添加水印的主要作用是保护图片版权,防止图片被未经授权的人使用或传播.为图片 ...

  2. Java 图片添加文字或者logo水印(附代码) | Java工具类

    目录 前言 环境依赖 代码 总结 前言 本文提供java工具类,给图片添加文字或者logo图片的水印效果. 环境依赖 工具库maven依赖添加 <dependency><groupI ...

  3. java pdf添加文字水印(非常专业)

    最近在开发一个项目,其中就有导出的功能,而甲方提了一个需求,要对导出的pdf加文字水印,所以我就加班了整整10分钟肝出了这个功能,既然做出来了就和大家分享一下吧,拿走不谢!!! 总共就三步,非常简单 ...

  4. 使用Java在图片中添加文字

    有这样一张图片,需要修改图中的时间 实现思路: 先使用绘图工具将上图中的时间抹成白色.将图片加载到BufferedImage类,使用Graphics2D类对图片进行文字绘制,最后输出流,前端通过a标签 ...

  5. java图片添加水印文字

    jAVA图片中添加文字水印(铺满整个图片) package com.zhuozhengsoft.mark; import java.awt.AlphaComposite; import java.aw ...

  6. 编辑图片加文字的软件有哪些?试试这些图片编辑方法

    能够编辑图片加文字的软件有哪些呢?通过在图片上添加文字,可以更好地传达信息.文字可以帮助解释图片中的内容,使其更易于理解和记忆.此外在图片上添加文字可以使其更具互动性.例如,在社交媒体上发布一张照片并 ...

  7. java在图片下方写文字_Java画图给图片底部添加文字标题

    Java画图 给图片底部添加文字标题 需求给图片底部添加文字编号 import java.awt.Color; import java.awt.Font; import java.awt.Graphi ...

  8. java pdf 文字_Java给pdf文件添加文字等信息

    2019独角兽企业重金招聘Python工程师标准>>> maven依赖 4.0.0 com.ttxit artifact 1.0.0 war javax.servlet javax. ...

  9. java springboot使用itext 为PDF添加文字水印并铺满屏

    java springboot使用itextpdf 为PDF添加文字水印并铺满屏 代码如下 如果对你有帮助希望你能点个赞 结尾 这是我第一次发博客,也是第一次使用itext添加水印.遇到一些大大小小的 ...

  10. Java实现在图片上添加文字(水印)

    今天分享一个:通过Java代码,给图片添加文字. 比如下面这个图片,我们在左下角就添加了一个文字版的水印,那么这是如何实现的呢 ? 目录 [1]获取原图片对象 (1.1)读取本地图片 (1.2)读取网 ...

最新文章

  1. web框架flask(12)——国际化和本地化
  2. mybatis整合redis
  3. UITabBar背景、icon图标颜色、被选中背景设置以及隐藏UITabBar的两种方式
  4. WebStorm常用设置(转载)
  5. Python基础教程(二):基础语法、变量类型
  6. Struts1.x的使用
  7. C++函数调用运算符重载
  8. 4.如果容器中包含了通过new操作创建的指针,切记在容器对象析构前将指针delete掉
  9. yum升级rhel5
  10. 蓝牙小电池图标_方寸间、掌握中,omthing小方盒开箱测评
  11. Fix chrome 下flash crash的问题
  12. switch VS if else
  13. C# 抗变与协变的理解
  14. 日常排版--word中的一些小技巧(交叉引用)
  15. 用友U8案例教程财务报表
  16. python背景怎么自定义铃声_【Python成长之路】如何用2行代码将抖音视频设置成我的手机铃声...
  17. 社团部部长工作计划计算机学院,社团部长的工作计划(共9篇).doc
  18. 03 【前端笔试】- 2020 搜狗校招笔试题
  19. 甘特图——项目计划与实际进度比较与调整
  20. ARPU与ARPPU 的概念

热门文章

  1. 「津津乐道播客」#301 这是一期价值3000元的当代社畜科学点餐指南
  2. 【EfficientNet】EfficientNet网络结构及代码详解
  3. OpenERP 模块动态加载原理及启动代码分析
  4. 小米商城项目实战(一)
  5. 电脑主板元件判断方法
  6. 7 21 第一次团队赛——————写给队友
  7. CSS 样式定义方式
  8. Android 8.0系统透明主题适配解决办法
  9. 移动网络安全之无线局域网安全
  10. 魔域单机版mysql数_魔域数据表!