Trong màn hỡnh text, truy xuất cỏc ký tự trờn màn hỡnh đƣợc hỗ trợ bởi phần cứng. Cỏc ký tự đƣợc lƣu trữ trong bộ nhớ ROM, dƣới dạng bitmap hay cỏc ma trận ảnh. Phần cứng sẽ đƣa ký tự lờn màn hỡnh tại vớ trớ xỏc định, tớnh toỏn cuốn trang và xuống dũng.
Trong đồ hoạ:
Vector: định nghĩa cỏc ký tự theo những đƣờng cong mềm bao ngoài của chỳng, tốn kộm về mặt tớnh toỏn.
Hỡnh 2.15 Ký tự vector
Ƣu nhƣợc điểm:
- phức tạp (tớnh toỏn phƣơng trỡnh) - lƣu trữ gọn nhẹ
- cỏc phộp biến đổi dựa vào cụng thức biến đổi
- Kớch thƣớc phụ thuộc vào mụi trƣờng (khụng cú kớch thƣớc cố định)
Bitmap: định nghĩa mỗi ký tự với 1 font chữ cho trƣớc là 1 ảnh bitmap hỡnh chữ nhật nhỏ.
Hỡnh 2.16 Ký tự bitmap
- Đơn giản trong việc sinh ký tự (copypixel)
- Lƣu trữ lớn
- Cỏc phộp biến đổi(I,B,U, scale) đũi hỏi lƣu trữ thờm
- Kớch thƣớc khụng đổi
bitmap: sử dụng hàm copypixel (copy điểm ảnh) đƣợc lƣu trữ trong bộ nhớ cố định - Fontcache, đƣa vào bộ nhớ đệm hiển thị. Mỗi 1 ký tự nhƣ 1 ma trận 2 chiều của cỏc điểm ảnh - mặt nạ.
Hàm_sinh_ki_tu (mask)
{xmax, ymax, xmin, ymin //cỏc giới hạn của mặt nạ
xo, yo //điểm gốc trờn bộ đệm hiển thị
for (i=ymin;i< ymax ;i++) for (j=xmin; j< xmax ; j++) if (mask(i,j) <> 0)
copypixel ((mask(i,j), pixel(xo+j, yo+i)); }
: Cỏc giải thuật sinh thực thể cơ sở
Ký tự fontcache bitmap đơn giản của SRGP lƣu trữ cỏc ký tự theo chuỗi liờn tiếp nhau trong bộ nhớ. Nhƣng độ rộng cỏc ký tự khỏc nhau, truy nhập cỏc fontcache thụng qua bản ghi về cấu trỳc cho từng kớ tự.
Cấu trỳc font chữ typedef struct { int leftx;
int width;
} Charlocation; //Vị trớ của text
struct { int CacheId;
int Height; // Độ rộng chữ
int CharSpace; // Khoảng cỏch giữa cỏc ký tự
Charlocation Table [128]; //bảng chữ cỏi
} fontcache;
Ký tự vector
Xõy dựng theo phƣơng phỏp định nghĩa cỏc ký tự bởi đƣờng cong mềm bao ngoài của chỳng dễ dàng thay đổi kớch thƣớc của kớ tự cũng nhƣ nội suy ra cỏc dạng của kớ tự. Hoàn toàn độc lập với thiết bị.
Tối ƣu nhất: lƣu trữ font dƣới dạng đƣờng bao. Khi cỏc chƣơng trỡnh ứng dụng sử dụng là bitmap tƣơng ứng với chỳng.