衡水需要做网站的公司,h5 网站模板,青岛网络推广方案,博客网站建设方案书在linux#xff0c;centos环境下的#xff0c;生成的带文字的水印图片在显示为方框乱码。img.setFont(new Font(宋体, Font.BOLD, 20));写中文进入图片之前必须设置字体#xff0c;而且这个字体必须支持中文#xff0c;否则就会出现乱码或者方框、问号等等。Bu…在linuxcentos环境下的生成的带文字的水印图片在显示为方框乱码。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 blocke.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程序员——学习是最好的投资