• Thứ Năm, 24/04/2008 10:57 (GMT+7)

    Đặc tả chi tiết về font TrueType của Microsoft

    Câu hỏi :
    Cho biết cách lưu trữ của 1 font chữ và cách nó hiển thị trên ma trận điểm. Làm thế nào font chữ có thể thu nhỏ hay phóng to nhiều lần vẫn mịn và không bị răng cưa?


    Trả lời :

     Windows và Linux dùng 2 loại font chữ:

     1. Font bitmap: dùng 1 ma trận điểm với kích thước xác định (thí dụ 8*16) để miêu tả cụ thể hình dạng của từng ký tự, mỗi ký tự có ma trận điểm riêng. Khi cần hiển thị ký tự nào, tra trong file font để lấy được ma trận pixel tương ứng rồi hiển thị ma trận này lên màn hình ở vị trí qui định. Do ma trận điểm đã được thiết kế với kích thước xác định nên nếu hiển thị với co chữ khác (nhỏ hơn hay lớn hơn) thì phải thu nhỏ/phóng to ma trận bitmap. Việc phóng to/thu nhỏ ảnh bitmap với 1 hệ số nào đó thường cho kết quả bị méo dạng lớn, nhất là phóng to chữ sẽ bị răng cưa chứ không mịn.

     2. Font outline: dùng danh sách các hàm toán học để miêu tả các đoạn thẳng/đoạn cong liên tiếp cấu thành đường viền của 1 ký tự. Để miêu tả đoạn thẳng, dùng hàm Line có 2 tham số là 2 đỉnh đoạn thẳng (mỗi đỉnh có 2 tọa độ x,y). Để miêu tả đoạn cong, dùng hàm Bezier (font PostScript) hay hàm B-Spline (font TrueType). Hai hàm Bezier và B-Spline dùng 4 điểm điều khiển để xác định đoạn cong. Các tọa độ được dùng trong các hàm có đơn vị xác định trong 1 kích cỡ chữ luận lý (thường khá lớn, thí dụ trong ma trận 1000x1000 pixel). Khi cần hiển thị chữ ở 1 co chữ nào đó, máy sẽ phóng to/thu nhỏ (scale) các tọa độ trong các hàm với 1 hệ số thích hợp. Sau đó máy mới tính các hàm để xác định chuỗi các điểm xác định từng đoạn thằng/đoạn cong, nếu có sự méo dạng thì dùng các thông tin được thiết lập sẵn trong file font (do người thiết kế thiết lập) để cân chỉnh lại kết quả. Nhờ quá trình vẽ chữ khá tinh vi này mà ký tự của các font outline thường được hiển thị khá tốt cho mọi co chữ, đặc biệt khi co chữ càng lớn thì ký tự được hiển thị càng mịn và sắc sảo.

     Bạn có thể liên hệ TGVT để copy file truetype.doc đặc tả chi tiết về font TrueType của Microsoft.

    Chuyên mục: Tiếng Việt