Когда я запускаю свои приложения для графического интерфейса в соответствии с Java 6, они автоматически используют мои настроенные настройки анти-алиатов для всех шрифтов. Результат значительно улучшен по сравнению с стандартными параметрами AA. < /P>
Но когда я рисую на изображение, я не могу найти способ инициализировать графический контекст для использования конфигурации AA системы. Попытка поиграть с различными подсказками Java AA-это потерянная причина, потому что ни один метод субпикселя не будет работать для всех пользователей. На данный момент я должен использовать ASP AA, чтобы избежать ужасных результатов, которые стандартный AA дает небольшими шрифтами. Я пытался ничего не устанавливать для текста АА, и вообще не настраивать намеки на АА. < /p>
Обновление 2010-01-05 < /strong> < /p>
Я думаю, что закрепил это; Подсказки AA, по -видимому, уважаются только при рисовании непосредственно в графическом контексте AWT; Когда я рисую на изображение с двойным буфером, он просто выполняет стандартный АА; но когда я обходя изображение с двойным буфером, субпиксель АА сделан. Обратите внимание, что ответ_fire не работает с использованием компонента AWT (используя new Label () вместо New jlabel () Fail), предположительно, потому что Fontrendercontext не может быть извлечен до тех пор, пока компонент не будет реализован на дисплей. />
try {
if((dbImage=dctRoot.createImage(wid,hgt,1))!=null) { // if createImage returns null or throws an exception the component is not yet displayable
dbGraphics=(Graphics2D)dbImage.getGraphics();
if(dctRoot.properties.getBoolean("Antialias",true)) {
try {
// set AA on overall
dbGraphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING ,RenderingHints.VALUE_ANTIALIAS_ON);
// set text AA to platform/impl default
dbGraphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT);
// try to override platform/impl AA with font-specified AA (Java 6+)
try { dbGraphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.class.getField("VALUE_TEXT_ANTIALIAS_GASP").get(null)); } catch(Throwable thr) {;} // yes, ignore exception
}
catch(Throwable thr) {
dctRoot.log.println("Antialiasing not supported on this JVM ("+thr+").");
dctRoot.setProperty("Antialias","False"); // turn off AA for subsequent painting
}
}
}
}
catch(Throwable thr) {
dbImage=null;
dbGraphics=null;
}
< /code>
Код для создания изображения использует базовый компонент AWT, который формирует фон, на котором я делаю всю свою живопись - компонент - это панель, потому что мне нужно иметь возможность выполнять SetFocuscyCleroot, чтобы он хорошо играл с другими компонентами AWT. Код создания изображения следует: < /p>
public DctImage createImage(int wid, int hgt, float accpty) {
GraphicsConfiguration cfg=awtComponent.getGraphicsConfiguration();
Image img=null;
if(transparentImages) {
//y { img=new BufferedImage(wid,hgt,BufferedImage.TYPE_INT_ARGB); } // NB: J2ME CDC/PP 1.1 does not have the BufferedImage constructors (one day I may discover a way to create a BufferedImage via another API!!)
try { img=cfg.createCompatibleImage(wid,hgt,Transparency.TRANSLUCENT); }// NB: J2ME CDC/PP 1.1 does not have this API, but prefer to use GraphicsConfiguration over new BufferImage(...)
catch(NoClassDefFoundError thr) { transparentImages=false; createImage(wid,hgt,accpty); } // try again with transparency disabled
catch(NoSuchMethodError thr) { transparentImages=false; createImage(wid,hgt,accpty); } // try again with transparency disabled
catch(NoSuchFieldError thr) { transparentImages=false; createImage(wid,hgt,accpty); } // try again with transparency disabled
}
else {
img=cfg.createCompatibleImage(wid,hgt);
}
if(accpty>0 && SET_ACCELERATION_PRIORITY!=null) {
try { SET_ACCELERATION_PRIORITY.invoke(img,new Object[]{new Float(accpty)}); } catch(Throwable thr) {;}
}
return (img==null ? null : new DctImage(img));
}
Подробнее здесь: https://stackoverflow.com/questions/191 ... -off-scree
Как я могу унаследовать настройку анти-алиаса системы для рисования текста на экране изображения, такие как Swing? ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Это неопределенное поведение для членов алиаса, использующих профсоюз? [дублировать]
Anonymous » » в форуме C++ - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-