Làm thế nào để kết xuất phông chữ thực sự hoạt động?


11

Tôi nhận ra rằng về cơ bản tôi không biết gì về cách các phông chữ được hiển thị trong máy tính của tôi.

Từ những gì tôi có thể quan sát, việc hiển thị phông chữ thường được thực hiện một cách nhất quán trong toàn hệ thống. Chẳng hạn, các cài đặt gợi ý phông chữ pixel mà tôi định cấu hình trong bảng điều khiển DE của mình có ảnh hưởng đến văn bản xuất hiện trên viền cửa sổ, trong trình duyệt của tôi, trong trình soạn thảo văn bản của tôi, v.v. (Tôi nên quan sát rằng một số ứng dụng Java cho thấy sự khác biệt đáng chú ý, vì vậy tôi đoán rằng chúng đang sử dụng một cơ chế kết xuất phông chữ khác nhau).

Những gì tôi nhận được ở trên là có lẽ tất cả các ứng dụng cần kết xuất phông chữ đều sử dụng một số thư viện trên toàn hệ điều hành (hoặc DE).

Mặt khác, các trình duyệt thường quản lý kết xuất của riêng họ thông qua một công cụ kết xuất, đảm nhiệm việc định vị các mục khác nhau - bao gồm cả văn bản - theo quy tắc luồng cụ thể.

Tôi không chắc làm thế nào hai sự thật này là tương thích. Tôi cho rằng trình duyệt sẽ phải yêu cầu HĐH vẽ glyph tại một vị trí nhất định, nhưng làm thế nào nó có thể quản lý luồng văn bản mà không cần biết trước glyph sẽ chiếm bao nhiêu dung lượng? Có các cuộc gọi riêng để xác định kích thước glyph, để trình duyệt có thể quản lý luồng như thể các ký tự là các hộp nhỏ mà sau đó được HĐH điền vào không? (Mặc dù điều này không quan tâm đến k sâu). Hoặc hệ điều hành chịu trách nhiệm vẽ toàn bộ khu vực văn bản, bao gồm cả dòng văn bản? Hệ điều hành có trả lại glyph được kết xuất dưới dạng bitmap và để nó cho ứng dụng vẽ nó trên màn hình không?


1
Câu trả lời ngắn gọn là có".
Graham Borland

@GrahamBorland ...: - / Mà một trong ba lựa chọn thay thế mà tôi đã mô tả là câu trả lời "có"?
Andrea

Tất cả trong số họ, tùy thuộc vào hoàn cảnh. Tôi sẽ cố gắng soạn một câu trả lời thích hợp.
Graham Borland

Câu trả lời:


9

Bạn nói đúng rằng, nói chung, các ứng dụng sử dụng các thư viện được cung cấp bởi HĐH hoặc bộ công cụ GUI để thực hiện kết xuất phông chữ.

Công cụ phông chữ điển hình cho phép một số chế độ hoạt động. Đối với trường hợp đơn giản, một ứng dụng có thể yêu cầu một chuỗi văn bản được vẽ ở một vị trí nhất định và động cơ sẽ đảm nhiệm mọi thứ (đo lường, định vị, vẽ các pixel vào màn hình, v.v.).

Ví dụ, đối với các ứng dụng yêu cầu mức độ kiểm soát tốt hơn - trình duyệt hoặc trình xử lý văn bản - công cụ sẽ hiển thị các giao diện nơi ứng dụng có thể yêu cầu đo một đoạn văn bản nhất định. Sau đó, ứng dụng có thể sử dụng kiến ​​thức này để tìm ra số lượng văn bản có thể phù hợp trên một dòng, nơi ngắt dòng sẽ là bao nhiêu, một đoạn văn sẽ mất bao nhiêu, v.v. Ứng dụng vẫn có thể yêu cầu công cụ thực hiện kết xuất thực tế của các pixel.

(Có thể có một kịch bản ở giữa, trong đó động cơ có thể lấy tham số độ rộng tối đa và có thể một số tham số k sâu / đệm và tự động hiển thị nhiều văn bản nhất có thể.)

Cuối cùng, công cụ phông chữ có thể cho phép ứng dụng tiếp nhận kết xuất văn bản cuối cùng, bằng cách trả lại bitmap của glyphs được kết xuất trước ở một kích thước nhất định, cho phép ứng dụng định vị và kết hợp nó vào màn hình cuối cùng. Hoặc công cụ thậm chí có thể đề nghị trả về dữ liệu phác thảo glyph thô để kết xuất với một số bộ công cụ vector.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.