java - 绘制到图像的组件使用难看的字体渲染

标签 java windows swing fonts

当我将 Swing 组件渲染到图像时,字体与在屏幕上渲染组件时的字体不同。这是显示差异的图像:

enter image description here

这是代码:

public static BufferedImage renderComponent(Component component) {
    int width = component.getWidth();
    int height = component.getHeight();
    BufferedImage buffImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
    Graphics2D g = (Graphics2D) buffImage.getGraphics();
    g.setFont(component.getFont());
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
    component.paint(g);
    g.dispose();
    return buffImage;
}

为了制作完美的 Swing 组件屏幕截图,我应该更改什么? (该应用程序在 Windows 7 上运行)

最佳答案

What should I change to make a perfect screen shot of a Swing component?

我猜你不应该提供渲染提示。

我使用Screen Image类(它基本上是您的代码,内置了一些其他功能)。

关于java - 绘制到图像的组件使用难看的字体渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4827845/

相关文章:

Java 不在 JPanel 上绘制

C# UDP Socket 不监听响应?

java - java中如何将对象写入文件?

c++ - 我的 cmd 输出几乎立即关闭,我似乎无法弄清楚为什么

c++ - 在 Windows 10 中的捕获客户端上使用 IAudioClient2::SetClientProperties 的预期效果是什么?

java - Spring Boot java中线程 "main"java.awt.HeadlessException中的异常

java - BorderLayout延迟问题

java - 从 Java 运行 PHP Web 应用程序

java - Eratosthenes 分段筛法 - Java

c - 在可移植 C 中将标准输出移出控制台