在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程序加水印及中文乱码方案相关推荐

  1. linux unzip乱码,Linux 中unzip解压时中文乱码的解决办法

    Linux 中unzip解压时中文乱码的解决办法 Linux 中unzip解压时中文乱码的解决办法 当我们在linux中解压一个含有中文名字的压缩包如"资料.zip"时,如果直接使 ...

  2. linux tomcat 日志乱码,Linux下TOMCAT中日志出现中文乱码

    红帽子AS4,其中TOMCAT为6.0. 结果TOMCAT中日志出现中文乱码 解决方法修改i18n: 最后的配置为: [root@linux etc]# more /etc/sysconfig/i18 ...

  3. linux加水印乱码,linux java程序加水印及中文乱码方案(二)

    上一篇介绍了在linux, centos图片加水印出现乱码的解决方案,<linux java程序加水印及中文乱码方案>, 在真实项目环境下,一是部署在虚拟机服务器,还有项目部署在docke ...

  4. JAVA实现图片加水印及Base64图片字符串加水印

    JAVA实现图片加水印及Base64图片字符串加水印 可将根据不同需求选择场景一,场景二来实现家水印操作,个人感觉比我上一遍文章<base64字符串加水印 >实在 场景一: 涉及上送过来的 ...

  5. thumbnails java_在JAVA中使用Thumbnails为图片加水印

    在JAVA中使用Thumbnails为图片加水印 将D盘下面的cat.jpg作为水印加在2.jpg上面,输出新的图片2_cat.jpg到D盘下面 1.java类import java.io.File; ...

  6. 视频加水印,怎么给视频加水印?

    视频加水印,怎么给视频加水印?现在是全民自媒体的时代,很多人在各种视频平台都都自己的主页,会将自己拍摄制作的原创视频分享到上面,让大家一起欣赏.这时候如果你发布的视频上没有添加水印,那么视频可能会被别 ...

  7. java 采用串口通信实现LED屏发送数据中文乱码问题

    java 采用串口通信实现LED屏发送数据中文乱码问题 1.定义:Pointer p = new Pointer(MemoryBlockFactory.createMemoryBlock(1024)) ...

  8. java中文乱码 寮犱笁_MySQL命令窗口中文乱码或插入中文数据失败

    在Windwos上使用命令窗口操作MySQL数据库时,如果命令窗口的字符编码与数据库不一致时,就会出现中文乱码的情况 比如查询会出现中文乱码,或者插入数据会出现错误"ERROR 1366 ( ...

  9. linux系统下codeblocks控制台打印中文乱码

    linux系统下codeblocks控制台打印中文乱码 在linux下安装codeblocks后,打印中文出现如下问题: #include <stdio.h> #include <s ...

  10. 解决在Linux下安装Oracle时的中文乱码问题

    解决在Linux下安装Oracle时的中文乱码问题 参考文章: (1)解决在Linux下安装Oracle时的中文乱码问题 (2)https://www.cnblogs.com/qiumingcheng ...

最新文章

  1. 如何用windows系统访问Linux系统的web网站
  2. hdu 2544 最短路 (dijkstra)
  3. OpenCV运行分类深度学习网络的实例(附完整代码)
  4. HDU 5536 Chip Factory 字典树+贪心
  5. K/3 MRP运算数据不准的原因及解决方案
  6. windos下安装redis
  7. word排版案例报告_原来按下这个键,10秒EXCEL与Word格式就能互相转换,涨知识了...
  8. Android 比SwipeRefreshLayout更漂亮和强大的下拉刷新控件:Android-MaterialRefreshLayout
  9. php中多重继承,PHP如何使用接口实现多重继承?(代码示例)
  10. oracle 建立临时表语句,oracle创建临时表
  11. PHP从入门到精通 第二版pdf
  12. YOLOv4 改进 | 记录如何一步一步改进YOLOv4到自己的数据集(性能、速度炸裂)
  13. Google Play支付:测试报错“无法购买您要的商品”问题
  14. 你不了解的 @reduxjs/toolkit 中的createApi
  15. vue判断是Android还是ios手机
  16. 《深入理解redis》之三:内存管理的建议与技巧
  17. 将任意自然数分解为质数的乘积(Java实现)
  18. Python3相对路径符号斜杠 (/),点斜杠(./),点点斜杠(../)的意思
  19. 搭建Web服务器-迅为IMX6ULL开发板
  20. 如何看待抖音被降权限流,该怎么挽回账号权重丨国仁网络资讯

热门文章

  1. 光功率 博科交换机_如何将交换机40G QSFP+与10G SFP+端口互连?
  2. 程序员你真的理解final关键字吗?
  3. Eureka 与Zookeeper 的区别,Eureka相较于Zookeeper好在哪?
  4. SpringBoot中注入ApplicationContext对象的三种方式
  5. python的合法语句_Python练习2
  6. 父子结构查询_Java面试准备(5)之数据结构与算法——红黑树
  7. ios跨线程通知_一种基于Metal、Vulkan多线程渲染能力的渲染架构
  8. winform项目_winform项目——仿QQ即时通讯程序01:原理及项目分析
  9. azure mysql on vnet_管理 VNet 终结点 - Azure 门户 - Azure Database for MySQL | Microsoft Docs
  10. updatepanel失效怎么办_【点滴积累】解决jQuery绑定事件在updatepanel更新后失效的方法...