gpt4 book ai didi

Java 字体呈现 : Must general AA really be turned off for subpixel AA?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:27:30 26 4
gpt4 key购买 nike

我一直在尝试增强我用 Java 编写的 GUI 系统以使用子像素抗锯齿功能并且取得了成功,除了一个遗留异常。这是 my other question from yesterday 的后续.

剩下的问题是,将渲染提示 KEY_ANTIALIASING 设置为 VALUE_ANTIALIAS_ON 会导致 KEY_TEXT_ANTIALIASING 在设置为 LCD(子像素)AA 值时被忽略。任何人都可以阐明这一点吗?目前,我被迫在渲染文本之前关闭 VALUE_ANTIALIAS_OFF,并在渲染文本之后将其重新打开(以便其他绘画,如圆圈等,是 AA'd)。

下面的独立测试程序证明了这个问题。如您所见,如果您运行它,当字体不是时,圆圈被涂上 AA,反之亦然。预先配置 AA 以适用于所有绘画会很好。


自包含测试程序

import java.awt.*;
import java.awt.event.*;

public class AwtTestFrame1c extends Panel {

AwtTestFrame1c() {
setBackground(SystemColor.control);
}

public void paint(Graphics gc) {
Graphics2D g2d = (Graphics2D)gc;
int py=0;

py=paintText(g2d,py,RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB,true );
py=paintText(g2d,py,RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB,false);
}

private int paintText(Graphics2D dgc, int py, Object val, boolean aa) {
char[] txt=("The quick brown fox jumped over the lazy dog ("+val+", General AA: "+aa+")").toCharArray();

if(aa ) { dgc.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON ); }
else { dgc.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF); }
if(val !=null) { dgc.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,val); }
dgc.setFont(font);

dgc.drawOval(5,py+5,15,15);
dgc.drawChars(txt,0,txt.length,30,py+line-5);

return (py+line);
}

static private final Font font=new Font("SansSerif",Font.PLAIN,16);
static private final int line=25;

static public void main(String[] args) {
Frame wnd=new Frame("AWT Antialiased Text Sample");

wnd.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
wnd.add(new AwtTestFrame1c());
wnd.setSize(new Dimension(1000, 300));
wnd.setVisible(true);
}

}

最佳答案

我正在更新 VirtualBox ,所以我拍了照片。我可能只是看到主机的渲染,但我怀疑它也依赖于实现。

Ubuntu 9.10 AwtTestFrame UbuntuMac OS X 10.5 AwtTestFrame MacWindows 7 AwtTestFrame WIn

关于Java 字体呈现 : Must general AA really be turned off for subpixel AA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2023579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com