[Matrix LED] Bài 12: Thay đổi kích thước font chữ

Một trong những vấn đề mà nhiều bạn khá quan tâm khi làm việc với màn hình LED có độ phân giải lớn hay các màn LCD là làm sao để thay đổi đa dạng kích cỡ của font chữ.

Chúng ta có thể tạo sẵn nhiều bộ font đa kích cỡ, cách này cũng rất OK do các màn led và lcd có độ phân giải khá nhỏ 🙁 nhưng 1 ngày đẹp trời bạn phải làm việc với 1 màn hình rất lớn thì sao, việc tạo quá nhiều bộ font sẽ gây lãng phí bộ nhớ !

Cách đơn giản nhất là chúng ta sẽ tạo 1 bộ font có kích thước to nhất rồi tiến hành thu nhỏ nó lại, việc này sẽ giúp font đẹp hơn là phóng to lên từ font nhỏ do sự thiếu hụt thông tin (sẽ cần các thuật toán nội suy phức tạp)

Ánh xạ font lớn thành font nhỏ

Rồi, giờ chỉ cần tính hệ số chênh lệch giữa font gốc và font cần thu nhỏ thôi ! Sau khi có được hệ số chỉ cần nhân nó cùng tọa độ ở hàm Matrix_setpx là được 🙂

Ví dụ, mình sẽ tạo 1 bộ font gốc có Width (rộng) là 105 và Height (cao) là 140 tức 105×140.

Trước tiên nhắc lại hàm vẽ chữ ở bài 4 cái đã

Với 7 ở đây là chiều cao tối đã của font, và 6 là chiều rộng tối đa của font, mình sẽ đưa 2 thông số này vào 1 cái #define cho tiện. Và kích cỡ font lúc này không còn là 6×7 nữa mà là 105×140

Và giờ viết lại hàm Matrix_guikitu và thêm vào 2 tham số sizeW, sizeH

Cách dùng

Chúng ta chỉ cần tạo gọi hàm với chữ cái cần in và kích cỡ chiều dài, chiều rộng của chữ thôi 🙂

Demo Resize Font

Về cơ bản, thuật toán này cũng phóng to font lên được, nhưng font bị phóng to sẽ xuất hiện răng cưa trông không đẹp !

 

Từ tác giả:

Có rất nhiều bạn inbox trực tiếp cho mình để hỏi các vấn đề giống nhau, các bạn vui lòng để lại thắc mắc dưới phần bình luận, mình sẽ phản hồi trong vòng 24h. Điều này sẽ giúp những người cùng thắc mắc có thể tự đọc, tìm hiểu mà không cần mất công hỏi lại mình. Like và comment cũng là một cách rất tốt để Google đánh giá cao bài viết và cho hiển thị lên thanh tìm kiếm, điều này sẽ giúp các bài viết tiếp cận được những người cần đến nó !

Nếu thấy các bài viết thật sự có ích đối với bạn, các bạn có thể donate cho mình tại tài khoản:

Giới thiệu Đào Nguyện 28 bài viết
DIY,chế cháo, viết blog chia sẽ kiến thức về lập trình,điện tử - IoT. Rất mong được giao lưu, kết bạn với các bạn cùng đam mê. Địa chỉ Facebook: https://www.facebook.com/nguyendao207

Hãy bình luận đầu tiên

Để lại comment nếu có thắc mắc, mình sẽ phản hồi trong 24h