java Graphics2D绘制文字并居中并解决服务器乱码问题
来源:互联网 发布:网络驱动精灵 编辑:程序博客网 时间:2024/05/28 01:36
此 Graphics2D 类扩展 Graphics 类,以提供对几何形状、坐标转换、颜色管理和文本布局更为复杂的控制。它是用于在 Java(tm) 平台上呈现二维形状、文本和图像的基础类。
一、在图片上绘制文字
实例代码:
package com.test.testImage;import java.awt.Color;import java.awt.Font;import java.awt.FontMetrics;import java.awt.Graphics2D;import java.awt.RenderingHints;import java.awt.image.BufferedImage;import java.io.File;import javax.imageio.ImageIO;public class Graphics2DTest { public static void main(String[] args) { try { String text = "文字居中"; int width = 500; int height = 400; // 创建BufferedImage对象 BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB); // 获取Graphics2D Graphics2D g2d = image.createGraphics(); // 画图 g2d.setBackground(new Color(255,255,255)); //g2d.setPaint(new Color(0,0,0)); g2d.setColor(Color.red); g2d.clearRect(0, 0, width, height); Font font=new Font("宋体",Font.PLAIN,64); g2d.setFont(font); // 抗锯齿 g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // 计算文字长度,计算居中的x点坐标 FontMetrics fm = g2d.getFontMetrics(font); int textWidth = fm.stringWidth(text); int widthX = (width - textWidth) / 2; // 表示这段文字在图片上的位置(x,y) .第一个是你设置的内容。 g2d.drawString(text,widthX,100); // 释放对象 g2d.dispose(); // 保存文件 ImageIO.write(image, "jpg", new File("D:/test.jpg")); } catch(Exception ex) { ex.printStackTrace(); } } }
二、解决服务器部署图片文字乱码问题
在Windows系统上,文字显示正常,当项目部署到Linux系统上时,中文全部变成了口口口这种方框。我们使用的文字是Font font=new Font(“宋体”,Font.PLAIN,64);。出现的原因是因为在Linux上没有中文宋体或者没有中文其他文字的字体库,需要我们导入。
(1)查找Windows系统(本地)的文字包
查找路劲C:\Windows\Fonts
本地是一个ttc文件,我们需要修改文件后缀,改为ttf。
(2)将ttf文件导入到linux系统java的fonts包中。
注:路径是你Linux系统java安装的文件,根据你的安装目录查询
(3)重启java或者tomcat生效
参考文章:
Java Swing 字体居中显示
阅读全文
0 0
- java Graphics2D绘制文字并居中并解决服务器乱码问题
- java-导出excel并解决乱码问题
- android开发,绘制圆形图片并添加文字居中显示
- Java另存Word并解决乱码问题
- Java Web实现文件打包下载并解决乱码问题
- 使用apache的TelnetClient实现java向telnet服务器发送命令并显示数据(解决乱码问题)
- 解决Graphics2D..drawString(message, px, py)的乱码问题
- mongodb导出数据,并解决乱码问题
- SpringBoot配置FastJson并解决乱码问题
- springboot配置fastjson并解决乱码问题
- Java Graphics2D绘制验证码
- Java后台发送Post和get请求 (并解决返回值乱码问题)
- Java使用Velocity模板发送HTML格式邮件并解决中文乱码问题
- Android 文字居中绘制
- 导出Excel的简单方法,并可以解决乱码问题
- 文件解压及打包 并解决中文乱码问题
- 访问网络资源,并显示成中文,解决中文乱码问题.
- ubuntu下支持rar格式,并解决乱码问题
- Java 实现 BP 神经网络完成 Iris 数据分类
- Java基础入门(三)数据类型
- Android 主题切换
- Java中的ReentrantLock和synchronized两种锁定机制的对比
- Levenberg–Marquardt算法学习
- java Graphics2D绘制文字并居中并解决服务器乱码问题
- jquery select2插件 改造
- 【最短路各种方法求解一题(模板题)】POJ2387 Til the Cows Come Home
- 【Python学习系列三】Windows下Python第三方常用库安装
- Nginx配置文件详解
- Performance Recorder性能记录器
- maven资源文件的相关配置
- 一篇文章让你彻底搞清楚Python中self的含义
- nginx 配置实战