我有一段Java代码,它在缓冲区上绘制文本并将其保存为单色BMP。我在Windows 7和CentOS 6.3上执行了该程序。
使用的字体是arial。Windows中生成的图像清晰,字符呈现均匀。为什么在Cent OS上,字符太细,看起来像平台缺失而无法渲染某些像素。
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.awt.font.FontRenderContext;
import java.awt.font.TextLayout;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class TimesB extends Canvas {
private Image img;
public TimesB() {
setBackground(Color.white);
}
public static void main(String s[]) throws IOException {
WindowListener l = new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
public void …Run Code Online (Sandbox Code Playgroud)