Java绘制文字质量太低的解决方案?

使用Graphics2D绘图结果如下:

图片描述

文字周边非常模糊。想要效果是:

图片描述

请问如何使用java实现这种清晰的绘制文字的效果呢?

更新

代码如下:

public static void pressText(String targetImg, String pressText, String fontName, int fontStyle, int fontSize, Color color) {

try {

File file = new File(targetImg);

Image image = ImageIO.read(file);

int width = image.getWidth(null);

int height = image.getHeight(null);

BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

Graphics2D g = bufferedImage.createGraphics();

g.setFont(new Font(fontName, fontStyle, fontSize));

g.drawImage(image, 0, 0, width, height, null);

g.setColor(color);

g.drawString(pressText, 50, 100);

g.dispose();

ImageIO.write(bufferedImage, "jpg", file);

} catch (Exception e) {

e.printStackTrace();

}

}

public static void main(String[] args) throws IOException {

pressText("e://test//test1.jpg", "测试", "华文细黑", Font.PLAIN, 30, Color.RED);

}

回答:

能贴出代码吗?照理来说应该不会啊,即使没有边缘优化,也不至于这样模糊,图片有没有进行缩放?有没有使用点阵字体?

g2d.setRenderingHint(SunHints.KEY_ANTIALIASING, SunHints.VALUE_ANTIALIAS_OFF);

g2d.setRenderingHint(SunHints.KEY_TEXT_ANTIALIASING, SunHints.VALUE_TEXT_ANTIALIAS_DEFAULT);

g2d.setRenderingHint(SunHints.KEY_STROKE_CONTROL, SunHints.VALUE_STROKE_DEFAULT);

g2d.setRenderingHint(SunHints.KEY_TEXT_ANTIALIAS_LCD_CONTRAST, 140);

g2d.setRenderingHint(SunHints.KEY_FRACTIONALMETRICS, SunHints.VALUE_FRACTIONALMETRICS_OFF);

g2d.setRenderingHint(SunHints.KEY_RENDERING, SunHints.VALUE_RENDER_DEFAULT);

这样设置后就可以了,不会出现模糊的情况。

回答:

你把图片格式改成png就好了,jpg不适合做文字绘制。

以上是 Java绘制文字质量太低的解决方案? 的全部内容, 来源链接: utcz.com/p/176409.html

回到顶部