Wednesday, July 27, 2005

ทดสอบตัวอักษร Anti-Alias ใน Java 1.5

จากเรื่องเก่าที่เคยเขียนไว้ swing.aatext in Java 1.5 วันนี้ลองใช้โปรแกรม ShowFont ที่เคยเขียนไว้ด้วย Java สำหรับแสดงฟอนต์ที่มีอยู่ทั้งหมดในระบบที่ขนาดต่างๆ โดยเปิดและปิด swing.aatext เปรียบเทียบกัน บนเครื่อง Linux (เพราะบน Windows ยังใช้ 1.4.2_08 อยู่เนื่องด้วยปัญหาระบบเสียง)

เมื่อเรียก /opt/jdk1.5.0_02/bin/java -Dswing.aatext=true -jar ShowFont.jar

เมื่อเรียก /opt/jdk1.5.0_02/bin/java -jar ShowFont.jar

สรุปว่า -Dswing.aatext=true ช่วยให้ตัวอักษรใน Swing เช่น ช่องกรอกข้อความ และ label แลดูสวยขึ้น แต่ไม่มีผลกับตัวอักษรที่วาดเองโดยใช้ drawString() ของ Graphics2D (อักษรตัวโตๆสีแดงในรูป)

โปรแกรม: ShowFont.jar

เพิ่มเติม

ทำตามที่ bact' เสนอ คือ เพิ่มคำสั่ง setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON) ปรากฏว่าได้ผล ตัวอักษรที่วาดเองโดยใช้ drawString() ก็เป็น Anti-Aliasing เหมือนกัน

อันนี้ลองด้วย Java 1.4.2 บน Windows สังเกตว่าอักษรของ Swing Control ต่างๆยังมีหยึกหยักอยู่

2 comments:

bact' said...

ลอง

setRenderingHint(RenderingHints.KEY_ANTIALIASING , RenderingHints.VALUE_ANTIALIAS_ON);

ดูรึยังครับ :)

(เหมือนถ้าเป็น Graphics2D เราต้องควบคุมเอง)

Hui/ฮุ้ย said...

ว่าจะลองหาดูเหมือนกันว่า set อะไรได้ไหม
ไม่ต้องหาเองแล้ว เดี๋ยวลองได้เลย :)