我有后台模板,其中 java 程序必须编写一些动态文本,
BufferedImage image = ImageIO.read(new File("background.jpg"));
Graphics g = image.createGraphics();
g.setFont(new Font("DejaVu Sans",Font.PLAIN,18));
g.drawString("Hello,World!",10,10);
当以这种方式编写时,我对 Java 编写的文本有一些解析问题。
如何用Java在图片上写高分辨率文字?
更新:这里是抗锯齿的例子。
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
最佳答案
问题不在于文本的绘制,而在于文件的后续保存:如果您使用 JPEG 压缩,您将得到 compression artifacts ,特别是像您的文字这样的尖角。
除了不使用 JPG 之外,没有真正的解决办法。
关于java - 如何获得 Java g.drawString() 高分辨率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5741680/