2009-12-08 30 views
8

Làm cách nào để chương trình vẽ văn bản trên bộ đệm khung được ánh xạ dưới dạng mảng? Điều cần thiết là cả hai phương tiện biểu diễn các ký tự riêng lẻ và vẽ các ký tự theo pixel theo cách không quá kém hiệu quả. Việc trình bày các ký tự nên được định nghĩa một cách lý tưởng chỉ trong mã, và không cần thư viện của bên thứ ba.Vẽ văn bản trên bộ đệm khung trong Linux từ C

Có ai biết mã để thực hiện việc này theo giấy phép tự do không? Hoặc một công cụ để tạo các định nghĩa dữ liệu cho phông chữ để sử dụng trong mã chương trình, ví dụ: mảng các giá trị bitmap glyph/ký tự?

+0

Mục đích hiển thị kết quả trên màn hình hay ghi nó vào một tệp? –

+1

Để hiển thị trên màn hình, lý tưởng lên tới 60 khung hình/giây – grrussel

Trả lời

3

Tôi không có bất kỳ thông tin cụ thể nào về bộ đệm khung, nhưng tôi có cách mã hóa phông chữ thú vị.

Nếu bạn có ứng dụng có thể ghi vào XBM format, bạn có thể mã hóa phông chữ chỉ bằng cách tạo hình ảnh chứa tất cả các ký tự. Tệp XBM có thể được bao gồm dưới dạng tệp C hoặc C++ và bằng cách sử dụng các offset thích hợp, bạn có thể dễ dàng truy cập một ký tự đơn. Đảm bảo mỗi ký tự bắt đầu tại một tọa độ X chia hết cho 8, bởi vì hình ảnh được mã hóa thành một bit cho mỗi pixel; bất cứ thứ gì không xếp hàng trên ranh giới 8 bit sẽ cần che và dịch chuyển.

-3

Để vẽ một đường trên một mảng 2D, hãy sử dụng Besengam's algorithm.

Để vẽ các ký tự bằng các đường thẳng, hãy tạo bảng chữ cái của bạn bằng cách sử dụng một chuỗi moveTo, lineTo. Ví dụ. cho đơn giản 'L':

image.moveTo(0,-fontHeight); 
image.lineTo(0, 0); 
image.lineTo(fontWidth,0); 
Các vấn đề liên quan