【发布时间】:2017-05-15 02:07:01
【问题描述】:
我正在尝试在一些纯色背景上绘制一些文本,并且在文本周围出现了一些伪影。有没有办法让写作变得干净利落?
final BufferedImage image = new BufferedImage(400, 400,
BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = (Graphics2D) image.getGraphics();
g2d.setColor(Color.BLUE);
g2d.fillRect(0,0, image.getWidth(), image.getHeight());
Font font = new Font ("Verdana", Font.PLAIN, 40);
AffineTransform affinetransform = new AffineTransform();
FontRenderContext frc = new FontRenderContext(affinetransform, true, true);
TextLayout layout = new TextLayout("Hello World!", font, frc);
g2d.setColor(Color.WHITE);
layout.draw(g2d, 100, 100);
ImageIO.write(image, "jpg", new File("testDirtyText.jpg"));
任何其他方面的建议也将不胜感激。
谢谢!
【问题讨论】:
-
呃,什么文物;抱歉,我只看到一个带有一些白色文本的蓝色矩形;没有什么看起来“乱七八糟”的东西?!
-
伪影就在文本的边缘。这是因为 JPEG 压缩质量问题。 @Boann 为我指明了正确的方向。