java在图片下方写文字_Java画图给图片底部添加文字标题
Java画图 给图片底部添加文字标题
需求给图片底部添加文字编号
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.font.FontRenderContext;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
/**
* JAVA 画图(生成文字水印)
*
* @author 杰宝宝
*
*/
public class ImageUtil {
/**
* @param str
* 生产的图片文字
* @param oldPath
* 原图片保存路径
* @param newPath
* 新图片保存路径
* @param width
* 定义生成图片宽度
* @param height
* 定义生成图片高度
* @return
* @throws IOException
*/
public void create(String str, String oldPath, String newPath, int width, int height){
try {
File oldFile = new File(oldPath);
Image image = ImageIO.read(oldFile);
File file = new File(newPath);
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = bi.createGraphics();
g2.setBackground(Color.WHITE);
g2.clearRect(0, 0, width, height);
g2.drawImage(image, 0, 0, width - 25, height - 25, null); //这里减去25是为了防止字和图重合
/** 设置生成图片的文字样式 * */
Font font = new Font("黑体", Font.BOLD, 25);
g2.setFont(font);
g2.setPaint(Color.BLACK);
/** 设置字体在图片中的位置 在这里是居中* */
FontRenderContext context = g2.getFontRenderContext();
Rectangle2D bounds = font.getStringBounds(str, context);
double x = (width - bounds.getWidth()) / 2;
//double y = (height - bounds.getHeight()) / 2; //Y轴居中
double y = (height - bounds.getHeight());
double ascent = -bounds.getY();
double baseY = y + ascent;
/** 防止生成的文字带有锯齿 * */
g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
/** 在图片上生成文字 * */
g2.drawString(str, (int) x, (int) baseY);
ImageIO.write(bi, "jpg", file);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
ImageUtil img = new ImageUtil();
img.create("编号:0011", "E:\\111.png", "E:\\222.png", 455, 455);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
原图:
image.png
生成后:
image.png
java在图片下方写文字_Java画图给图片底部添加文字标题相关推荐
- JAVA 画图 给图片底部添加文字标题
此文是本人2018年写的一个小功能 后来不玩csdn了 很多人问问题我都没看到,对不住了各位!!! 建议直接使用image-combiner功能强大 https://gitee.com/dromara ...
- CAD画图完成后怎么添加文字内容
在CAD制图工作中,我们常常需要给绘制的CAD图形添加上文字内容,以便于使CAD图纸详实详尽.那么在CAD画图完成后怎么添加文字内容呢?今天小编就和大家一起讨论一下.演示操作如下: 1.启动CAD看图 ...
- 视频添加文字用什么软件,视频添加文字怎么弄
随着plog.vlog等视频形式的兴起,视频添加文字变得越来越流行.与其选择插入音频解说,还不如加文字来得生动有趣.那么,视频添加文字用什么软件?视频添加文字怎么弄?接下来,本文会教大家使用一款简单好 ...
- 【二维码的创建、底部添加文字以及文字乱码】
首先引入maven依赖 依赖1 < dependency > < groupId>com.google.zxing< /groupId> < artifact ...
- java canvas添加图片上传_HTML5 canvas画图及图片上传服务器
上一个教程中我们实现了使用html5 canvas来制作涂鸦画板的效果,在这个教程中,我们将讲解如何将画好的图片上传到服务器上. 最后的效果如下图,当点击"开始画图"按钮,将在ca ...
- java 图片服务器 上传_Java实现把图片上传到图片服务器(nginx+vsftp)
前言: 在我另一篇笔记中已经记载了如何用nginx + vsftp搭建图片服务器(请参考nginx + vsftp搭建图片服务器),并且用vsftp的客户端工具filezilla测试过已经可用.但是在 ...
- 切换图片尝试写第一个js插件 图片轮播
新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正 最近在看怎么写js插件,实验写了一个简单的图片轮播插件 jqury.picPlay.js . 基本html框架为<div cl ...
- 网页怎么在图片上添加文字_抖音一天可见怎么添加文字-抖音一天可见添加文字文案方法介绍...
抖音一天可见怎么添加文字?在抖音短视频app中,支持用户将自己的日常生活以日常一天可见的形式发布,那我们发布的一天可见视频,怎么添加文字文案呢,抖音一天可见怎么添加文字,下面就和小编一起来看看吧! 1 ...
- python图片隐写_机窝安全--LSB图片隐写
人类能说识别大概1000万中颜色,而BMP等的三原色有从0x00~0xFF,也就是有256的3次方,大概是1600多万,也就是说人类大概有600万颜色无法识别,但是机器并不是通过像素识别,而是通过该像 ...
最新文章
- java 异或_Java之超级基础且实用的知识点
- Qt探秘——谈ui文件的用法
- [转]Linux awk 命令 说明
- C++自定义sobel求梯度
- 网络安全 攻击类型_网络攻击的类型| 网络安全
- 同学聚会 主持词_我主持freeCodeCamp聚会的三年来的成功和失败
- 千呼万唤始出来 ===Visual Studio Team System 2008 Team Suite 中文版 Out!!!
- 比特币支付优点是什么
- 面向对象的三个特点:封装、继承、多态
- 基于matlab的光伏电池通用数学模型,基于MATLAB的光伏电池通用数学模型.doc
- yii、yaf、ci等php框架性能对比
- 提高效率: Atom ,介绍几个实用插件,组合使用
- 中图分类法---- U 交通运输
- 知乎APP---案例分析
- android模拟器录制视频教程,畅玩安卓模拟器怎么录制视频?畅玩模拟器录制游戏视频图文教程...
- amd cpu排行_2019 CPU天梯图(intel和AMD CPU性能排行)
- FreeMarker生成word文档
- 计算机鼠标双击怎么,电脑鼠标双击没反应怎么办
- C++求球的面积与体积,公式一样输出结果不一样?
- 注册kaggle帐号及kaggle绑定手机收不到验证码的问题
热门文章
- 求高光谱图像相关系数矩阵
- 详解C++移动语义std::move()
- PIC模拟从入门到熟练系列之组会PPT20210906《Note of PIC》
- Scikit-Learn 与 TensorFlow 机器学习实用指南学习笔记 4 —— 数据探索与可视化、发现规律
- 计算机管理磁盘管理,如何打开磁盘管理?
- mariadb mysql版本对应_弹指神通MariaDB——MariaDB与MySQL各版本的区别
- ##(两个井号)和#(一个井号)都是什么意思C and C++ 2008-09-23 21:18:27 阅读1106 评论0 字号:大中小 订阅 .
- TRzCheckTree
- strhcr函数的使用简单示例
- SpringBoot 根据传参返回不同的内容