Я пытаюсь нарисовать текст на каком-то обычном цветовом фоне, и я получаю некоторые артефакты вокруг текста. Есть ли способ получить чистое письмо?Текст Java AWT создает артефакты
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"));
Это производит некоторые артефакты, как показано здесь:
Любые советы вокруг любой другой аспект этого будет понятно, как хорошо.
Спасибо!
Err, какие артефакты; извините, но я вижу только синий прямоугольник с белым текстом; и ничего, что выглядит «не в порядке» ?! – GhostCat
Артефакты находятся только по краям текста. Это из-за проблем с качеством сжатия JPEG. @Boann указал мне в правильном направлении. – undetected