Danh mục

Tìm hiểu các thuộc tính của chữ

Số trang: 8      Loại file: pdf      Dung lượng: 494.66 KB      Lượt xem: 12      Lượt tải: 0    
10.10.2023

Phí tải xuống: 4,000 VND Tải xuống file đầy đủ (8 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Trong Windows, khi trình bày văn bản, các ký tự được thể hiện theo nhiều dạng khác nhau. Đây là một trong những đặc trưng cơ bản của giao diện đồ họa - người dùng (GUI – Graphical User Interface). Để thực hiện điều này, Windows hỗ trợ nhiều dạng font chữ khác nhau. Trong phần này, chúng ta tìm hiểu các vấn đề chính về các font chữ, màu sắc cũng như cách sử dụng chúng để trình bày văn bản. ...
Nội dung trích xuất từ tài liệu:
Tìm hiểu các thuộc tính của chữIczelion’s Tutorial Win32 ASM Tutorial 5 : More about Text Tìm hiểu các thuộc tính của chữ Trong Windows, khi trình bày văn bản, các ký tự được thể hiện theo nhiều dạngkhác nhau. Đây là một trong những đặc trưng cơ bản của giao diện đồ họa - người dùng(GUI – Graphical User Interface). Để thực hiện điều này, Windows hỗ trợ nhiều dạngfont chữ khác nhau. Trong phần này, chúng ta tìm hiểu các vấn đề chính về các font chữ,màu sắc cũng như cách sử dụng chúng để trình bày văn bản.Tìm hiểu về hệ thống màu Hệ thống màu của Windows có được xây dựng dựa trên hệ thống màu RGB(R=Red, G=Green, B=Blue) – hiểu nôm na là mỗi màu có được bằng cách trộn 3 màu cơbản là Red (đỏ), Green (xanh lá cây), Blue (xanh lam). Nếu bạn muốn sử dụng một màutrên Windows, bạn phải cho biết giá trị của 3 thành phần màu R, G, B nói trên. Mỗi thànhphần màu tương ứng với một số từ 0 đến giá trị lớn nhất (tùy theo số bit cho mỗi điểmảnh), thông thường từ từ 0 đến 255 (giá trị 1 byte).Ví dụ, nếu bạn muốn có màu đỏ “thuần túy” thì bạn phải chỉ định giá trị của R,G, B lầnlượt là 255,0,0 (R=255, G=0, và B=0). Hay nếu bạn muốn có màu trắng “thuần túy” thìgiá trị lần lượt là 255,255,255. Như vậy, để có được màu mà bạn cần thì rất khó khăn vớihệ thống như vậy, trừ khi bạn phải biết được giá trị của 3 thông số màu tương ứng trongmỗi màu để. Đối với màu chữ và màu nền, bạn dùng hàm SetTextColor và SetBkColor,cả hai đều sử dụng một handle của DC và một giá trị màu 32-bit RGB. Hệ thống 32-bitgiá trị RGB được định nghĩa như sau: RGB_value struct unused db 0 blue db ? green db ? red db ? RGB_value endsNgười dịch: Benina (REA TEAM) Trang 1Tổng hợp và hiệu chỉnh: NhatPhuongLe (VNCERT TEAM)Iczelion’s Tutorial Win32 ASM Tutorial 5 : More about TextChú ý, byte đầu tiên không được dùng và nó sẽ bằng zero. Thứ tự của 3 byte màu còn lạiR, G, B bị đảo ngược lại thành Blue, Green, Red. Tuy nhiên bạn sẽ không dùng cấu trúcnày vì khó khăn trong việc khởi tạo giá trị ban đầu cho các thành phần màu và sử dụngchúng. Thay vì vậy, chúng ta sẽ tạo một macro. Marco này nhận 3 tham số: Red, Greenvà Blue. Nó sẽ tạo một giá trị 32-bit RGB theo yêu cầu và nạp nó vào thanh ghi EAX.Macro được định nghĩa như sau: RGB macro red,green,blue xor eax,eax mov ah,blue shl eax,8 mov ah,green mov al,red endmBạn có thể đặt macro này vào trong file include để dùng sau này.Tìm hiểu về fontFont chữ trong Windows được chia thành hai nhóm, gọi là font GDI và font thiết bị. Font GDI được lưutrữ dưới dạng tập tin trên đĩa, trong khi font thiết bị được thiết kế sẵn trong thiết bị xuất tương ứng, ví dụmáy in. Đối với font GDI, Windows chuyển văn bản thành ảnh bitmap sau đó chuyển đến máy in để in.Như vậy, ưu điểm của font GDI là độc lập với thiết bị xuất, tuy nhiên tốc độ xử lý in chậm hơn.Các font GDI thông thường gồm có: font bitmap, font vector và font TrueType.  Font bitmap được cấu thành từ ma trận pixel, có lợi điểm là hiển thị nhanh, nhưng hạn chế trong việc thể hiện với các kích thước khác nhau (do chỉ phóng to, thu nhỏ, và khi phóng sẽ bị bể ảnh).  Font vector thể hiện các ký tự như là tập hợp các nét vẽ (sử dụng các hàm GDI), do đó linh động và co giản hơn font bitmap, tuy nhiên được vẽ khá chậm và đường nét cũng không được mềm mại cho lắm.  Font TrueType là dạng font được sử dụng phổ biến nhất hiện nay, được lưu trữ dưới dạng một tập các điểm ảnh, kết hợp một số thuật toán biến đổi. Do đó thể hiện sắc xảo các đường nét trên màn hình và máy in. Chúng ta sẽ khảo sát các hàm xử lý cho các font chữ dạng này.Những lý thuyết về font ở phần trên, bạn không cần nhớ. Tóm lại, để tạo font (font logic),bạn gọi hàm CreateFont hay CreatFontIndirect. Hàm CreateFontIndirect nhận contrỏ cấu trúc LOGFONT. Xét định nghĩa của cấu trúc LOGFONT : typedef struct tagLOGFONT // lf { LONG lfHeight; LONG lfWidth; LONG lfEscapement; LONG lfOrientation; LONG lfWeight; BYTE lfItalic; BYTE lfUnderline; BYTE lfStrikeOut; BYTE lfCharSet; BYTE lfOutPrecision; BYTE lfClipPrecision; BYTE lfQuality; BYTE lfPitchAndFamily; TCHAR lfFaceName[LF_FACESIZE]; } LOGFONT;Người dịch: Benina (REA TEAM) ...

Tài liệu được xem nhiều: