java 水印乱码,linux java程序加水印及中文乱码方案
在linux,centos环境下的,生成的带文字的水印图片在显示为方框乱码。
img.setFont(new Font("宋体", Font.BOLD, 20));
写中文进入图片之前必须设置字体,而且这个字体必须支持中文,否则就会出现乱码或者方框、问号等等。
BufferedImage在内存创建的图像调用的是服务器端的字体,所以在img.drawString(str, x, y);时,如果服务器端找不到对应的中文字体,那么它就识别不了,最后写入图片的中文就变成了乱码、方框、问号等了。
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ImageGraphics {
/**
* @param args
*/
public static void main(String[] args) {
int width = 200;
int height = 200;
String text = "佳友博客";
int x = 0;
int y = 0;
BufferedImage processDiagram = new BufferedImage(100, 100,
BufferedImage.TYPE_INT_ARGB);
Graphics2D g = (Graphics2D) processDiagram.createGraphics();
Font font = new Font("宋体", Font.BOLD, 12);
g.setFont(font);
FontMetrics fontMetrics = g.getFontMetrics();
int textX = x + ((width - fontMetrics.stringWidth(text)) / 2);
int textY = y + ((height - fontMetrics.getHeight()) / 2)
+ fontMetrics.getHeight();
g.drawString(text, textX, textY);
File outFile = new File("c:/friend365.png");
try {
ImageIO.write(processDiagram, "png", outFile);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}// 写图片
}
}
需要将相关的字体文件传到服务器的jdk下即可, 如果没有simsun.ttc文件的话,上网搜索一下并下载。
#cd /usr/java/jdk1.7/jre/lib/fonts
#sudo mkdir fallback
将simsun.ttc拷贝到# /usr/java/jdk1.7/jre/lib/fonts/fallback文件夹内
#cp /usr/simsun.ttc /usr/java/jdk1.7/jre/lib/fonts/fallback
修改完必须重启服务器才有效。
1. java enum枚举使用场景及优缺点
2. dubbo实现原理机制
3. java程序员——学习是最好的投资
java 水印乱码,linux java程序加水印及中文乱码方案相关推荐
- linux unzip乱码,Linux 中unzip解压时中文乱码的解决办法
Linux 中unzip解压时中文乱码的解决办法 Linux 中unzip解压时中文乱码的解决办法 当我们在linux中解压一个含有中文名字的压缩包如"资料.zip"时,如果直接使 ...
- linux tomcat 日志乱码,Linux下TOMCAT中日志出现中文乱码
红帽子AS4,其中TOMCAT为6.0. 结果TOMCAT中日志出现中文乱码 解决方法修改i18n: 最后的配置为: [root@linux etc]# more /etc/sysconfig/i18 ...
- linux加水印乱码,linux java程序加水印及中文乱码方案(二)
上一篇介绍了在linux, centos图片加水印出现乱码的解决方案,<linux java程序加水印及中文乱码方案>, 在真实项目环境下,一是部署在虚拟机服务器,还有项目部署在docke ...
- JAVA实现图片加水印及Base64图片字符串加水印
JAVA实现图片加水印及Base64图片字符串加水印 可将根据不同需求选择场景一,场景二来实现家水印操作,个人感觉比我上一遍文章<base64字符串加水印 >实在 场景一: 涉及上送过来的 ...
- thumbnails java_在JAVA中使用Thumbnails为图片加水印
在JAVA中使用Thumbnails为图片加水印 将D盘下面的cat.jpg作为水印加在2.jpg上面,输出新的图片2_cat.jpg到D盘下面 1.java类import java.io.File; ...
- 视频加水印,怎么给视频加水印?
视频加水印,怎么给视频加水印?现在是全民自媒体的时代,很多人在各种视频平台都都自己的主页,会将自己拍摄制作的原创视频分享到上面,让大家一起欣赏.这时候如果你发布的视频上没有添加水印,那么视频可能会被别 ...
- java 采用串口通信实现LED屏发送数据中文乱码问题
java 采用串口通信实现LED屏发送数据中文乱码问题 1.定义:Pointer p = new Pointer(MemoryBlockFactory.createMemoryBlock(1024)) ...
- java中文乱码 寮犱笁_MySQL命令窗口中文乱码或插入中文数据失败
在Windwos上使用命令窗口操作MySQL数据库时,如果命令窗口的字符编码与数据库不一致时,就会出现中文乱码的情况 比如查询会出现中文乱码,或者插入数据会出现错误"ERROR 1366 ( ...
- linux系统下codeblocks控制台打印中文乱码
linux系统下codeblocks控制台打印中文乱码 在linux下安装codeblocks后,打印中文出现如下问题: #include <stdio.h> #include <s ...
- 解决在Linux下安装Oracle时的中文乱码问题
解决在Linux下安装Oracle时的中文乱码问题 参考文章: (1)解决在Linux下安装Oracle时的中文乱码问题 (2)https://www.cnblogs.com/qiumingcheng ...
最新文章
- 如何用windows系统访问Linux系统的web网站
- hdu 2544 最短路 (dijkstra)
- OpenCV运行分类深度学习网络的实例(附完整代码)
- HDU 5536 Chip Factory 字典树+贪心
- K/3 MRP运算数据不准的原因及解决方案
- windos下安装redis
- word排版案例报告_原来按下这个键,10秒EXCEL与Word格式就能互相转换,涨知识了...
- Android 比SwipeRefreshLayout更漂亮和强大的下拉刷新控件:Android-MaterialRefreshLayout
- php中多重继承,PHP如何使用接口实现多重继承?(代码示例)
- oracle 建立临时表语句,oracle创建临时表
- PHP从入门到精通 第二版pdf
- YOLOv4 改进 | 记录如何一步一步改进YOLOv4到自己的数据集(性能、速度炸裂)
- Google Play支付:测试报错“无法购买您要的商品”问题
- 你不了解的 @reduxjs/toolkit 中的createApi
- vue判断是Android还是ios手机
- 《深入理解redis》之三:内存管理的建议与技巧
- 将任意自然数分解为质数的乘积(Java实现)
- Python3相对路径符号斜杠 (/),点斜杠(./),点点斜杠(../)的意思
- 搭建Web服务器-迅为IMX6ULL开发板
- 如何看待抖音被降权限流,该怎么挽回账号权重丨国仁网络资讯
热门文章
- 光功率 博科交换机_如何将交换机40G QSFP+与10G SFP+端口互连?
- 程序员你真的理解final关键字吗?
- Eureka 与Zookeeper 的区别,Eureka相较于Zookeeper好在哪?
- SpringBoot中注入ApplicationContext对象的三种方式
- python的合法语句_Python练习2
- 父子结构查询_Java面试准备(5)之数据结构与算法——红黑树
- ios跨线程通知_一种基于Metal、Vulkan多线程渲染能力的渲染架构
- winform项目_winform项目——仿QQ即时通讯程序01:原理及项目分析
- azure mysql on vnet_管理 VNet 终结点 - Azure 门户 - Azure Database for MySQL | Microsoft Docs
- updatepanel失效怎么办_【点滴积累】解决jQuery绑定事件在updatepanel更新后失效的方法...