Công cụ tạo ASCII art biến chữ hoặc hình ảnh thành những bức tranh được vẽ hoàn toàn bằng chữ cái, chữ số và ký hiệu. Lập trình viên dùng nó cho banner terminal, phần đầu README, màn hình chào của CLI, trang trí log, hình vẽ chat kiểu retro, và đơn giản là cho vui khi xây dựng công cụ dòng lệnh.
Có hai loại ASCII art phổ biến nhất. *Banner chữ* hiển thị một từ bằng font khối lớn, nhiều dòng, đúng phong cách figlet kinh điển. *Ảnh sang ASCII* ánh xạ độ sáng của các điểm ảnh sang ký tự văn bản, tạo ra một bản thang xám của bức ảnh gốc chỉ bằng các phím trên bàn phím.
Vì ASCII art chỉ là văn bản, nó hoạt động ở mọi nơi văn bản hoạt động: đầu ra terminal, tệp log, README trên GitHub, tin nhắn Slack và cả trong chú thích của mã nguồn. Không cần ảnh, không cần render, không lo liên kết hỏng: hoàn hảo cho những nơi không thể dùng đồ họa.
Bạn sẽ học được gì khi tạo ASCII art
Font banner có rất nhiều kiểu: khối, nghiêng, đổ bóng, 3D, mỗi kiểu mang một cảm giác riêng.
Chuyển ảnh sang ASCII hoạt động bằng cách lấy mẫu độ sáng của từng vùng ảnh nhỏ rồi chọn ký tự có mật độ thị giác tương tự (@, #, *, ., ).
Font monospace rất quan trọng. ASCII art chỉ thẳng hàng trong font mà mọi ký tự rộng bằng nhau: terminal, khối code trong README và hầu hết font lập trình.
Hình rộng cần khung hiển thị rộng. Một banner 120 cột trông rất đẹp trong terminal sẽ bị xuống dòng lộn xộn trong một cột Markdown hẹp.
Cách tạo ASCII art từng bước
1
Chọn chế độ chữ hoặc ảnh
Chế độ chữ biến một từ thành banner. Chế độ ảnh biến tấm ảnh bạn tải lên thành bản ASCII thang xám.
2
Chọn font (chế độ chữ)
Duyệt các font kiểu figlet: Standard, Slant, Big, Block, Shadow, 3D. Mỗi font đều hiển thị bản xem trước với nội dung bạn nhập.
3
Chỉnh độ phân giải (chế độ ảnh)
Chọn độ rộng đầu ra tính theo ký tự và độ tương phản. Càng nhiều cột thì càng chi tiết và kết quả càng rộng.
4
Sao chép hoặc tải về
Sao chép ASCII art vào bộ nhớ tạm hoặc tải về dưới dạng tệp .txt. Dán nó vào README, script banner hoặc tin nhắn chat.
Tra cứu nhanh ASCII art
ASCII art xuất hiện ở đâu và làm sao để nó hiển thị đúng.
Trường hợp dùng
Cách hiệu quả
Cần lưu ý
Banner terminal
Font Block / Big / Slant
Độ rộng: đa số terminal rộng 80 cột
Phần đầu README
Đặt trong khối code có rào
Markdown gộp khoảng trắng đầu dòng bên ngoài khối code
Màn hình chào của CLI
In ra ở lần chạy đầu tiên
Mã màu là phần riêng (ANSI escape)
Trang trí log
Khẩu hiệu ngắn, một dòng
Giữ cho dễ đọc lướt: log cuộn rất nhanh
Chuyển ảnh
Ảnh đen trắng
Ảnh màu bị mất thông tin, nên chuyển sang thang xám trước
Một chuỗi raw nhiều dòng giữ nguyên dấu gạch chéo ngược, nên hình vẽ không bị quy tắc escape của Python làm hỏng. Dùng mẹo tương tự trong bash (với dấu nháy đơn) hoặc bất kỳ ngôn ngữ nào có chuỗi literal.
Nhún vai và lật bàn (sao chép và dán)
Sao chép
¯\_(ツ)_/¯
(╯°□°)╯︵ ┻━┻
┬─┬ ノ( ゜-゜ノ)
Các biểu tượng cảm xúc kinh điển: nhún vai, lật bàn và dựng bàn lại. Đây là hình vẽ chữ một dòng (về mặt kỹ thuật là Unicode, không phải ASCII thuần): sao chép thẳng vào chat, commit message hay chú thích code.
ASCII art con mèo và con chó
Mèo
/\_/\
( o.o )
> ^ <
Chó
/ \__
( @\___
/ O
/ (_____/
/_____/ U
Hình con vật nhỏ là loại ASCII art được sao chép nhiều nhất. Chúng vừa trong một khối chú thích ngắn và hiển thị đúng với mọi font monospace.
Trái tim, ngôi sao và mũi tên
Sao chép
<3 ♥ ❤
* ★ ☆ ✦
-> => → ⇒ »
Ký hiệu nhanh cho chat, README và changelog. Các phiên bản ASCII thuần bên trái (<3, *, ->) hiển thị ở mọi nơi; các phiên bản Unicode bên phải cần hỗ trợ UTF-8.
Lỗi ASCII art thường gặp
Dán ASCII art vào font tỷ lệ (Times, Helvetica) rồi thắc mắc vì sao hình bị méo. Hãy dùng font monospace.
Quên rằng Markdown gộp các dấu cách liên tiếp và xóa khoảng trắng đầu dòng bên ngoài khối code. Luôn bọc hình vẽ trong rào ```.
Chọn font rộng hơn cửa sổ đích. Đa số terminal rộng 80 cột: rộng hơn sẽ bị xuống dòng và hỏng bố cục.
Nhúng banner trực tiếp vào một chuỗi có dấu gạch chéo ngược. Hãy dùng chuỗi *raw* (r""" ... """) để các ký tự escape không bị diễn giải.
Chuyển ảnh sang ASCII với độ phân giải quá thấp. Dưới khoảng 40 cột, ngay cả hình đơn giản cũng khó nhận ra.
Câu hỏi thường gặp về ASCII art
ASCII art là gì?
ASCII art là hình vẽ hoặc banner được tạo hoàn toàn từ chữ cái, chữ số và dấu câu. Vì chỉ là văn bản, nó hoạt động ở bất kỳ đâu hiển thị được văn bản: terminal, README, tệp log, tin nhắn chat.
Chuyển ảnh sang ASCII hoạt động như thế nào?
Ảnh được chia thành một lưới các ô nhỏ. Độ sáng trung bình của từng ô được tính ra rồi ánh xạ sang một ký tự có mật độ thị giác tương tự: ký tự đặc (@, #, M) cho ô tối, ký tự thưa (., ,, ) cho ô sáng.
Figlet là gì?
FIGlet là lệnh Unix đầu tiên dùng để hiển thị chữ dưới dạng banner ASCII art. Nó giới thiệu hầu hết các font phổ biến (Standard, Slant, Big, 3D, Shadow). Các công cụ tạo ASCII online thường đi kèm đúng bộ font này.
Nên dùng ASCII art ở đâu?
Banner terminal, màn hình chào của CLI, phần đầu README, đường phân cách, chat kiểu retro và bất cứ nơi nào bạn muốn trang trí mà không cần tệp ảnh. Tránh dùng trong nội dung nghiêm túc dành cho người dùng, nơi nó chỉ gây rối mắt.
ASCII art có hiển thị đúng ở mọi nơi không?
Nó cần font monospace và đủ không gian theo chiều ngang. Trong khối code Markdown hoặc terminal, nó hiển thị hoàn hảo. Trong font tỷ lệ (bong bóng chat, tài liệu Word), các cột sẽ bị lệch.
Làm sao để sao chép và dán ASCII art?
Chọn hình vẽ, sao chép rồi dán vào nơi cần dùng, nhưng hãy dán vào chỗ dùng font monospace (terminal, khối code, chú thích code), nếu không các cột sẽ không thẳng hàng. Trong Markdown, bọc nó trong khối code có rào (```) để giữ nguyên khoảng cách. Nhiều ví dụ ở trên có nút Sao chép giúp bạn lấy văn bản.
ASCII art và hình vẽ chữ Unicode khác nhau thế nào?
ASCII art đúng nghĩa chỉ dùng 128 ký tự ASCII (chữ cái, chữ số và dấu câu cơ bản), nên hiển thị giống hệt nhau trên mọi hệ thống, kể cả máy từ nhiều thập kỷ trước. Hình vẽ chữ Unicode, như biểu tượng ¯\_(ツ)_/¯, ký tự vẽ khung và ký hiệu như ♥, trông phong phú hơn nhưng cần hỗ trợ UTF-8 để hiển thị. Để tương thích tối đa (terminal cũ, tệp log thuần văn bản), hãy dùng ASCII thuần.
Làm sao để tạo ASCII art từ một tấm ảnh?
Chuyển công cụ sang chế độ ảnh và tải ảnh lên. Mỗi vùng nhỏ của ảnh được lấy mẫu độ sáng và ánh xạ sang một ký tự có mật độ tương ứng, tạo ra bản thang xám bằng văn bản. Ảnh đơn giản, tương phản cao (logo, hình bóng) cho kết quả tốt nhất; ảnh màu nhiều chi tiết sẽ bị mất chi tiết. Tăng độ rộng đầu ra để có thêm chi tiết.
Công cụ tạo ASCII art này có miễn phí không?
Có, hoàn toàn miễn phí và không cần đăng ký. Mọi thứ chạy ngay trong trình duyệt, nên ảnh bạn tải lên không bao giờ rời khỏi thiết bị. Tạo banner và hình ảnh ASCII thoải mái, rồi sao chép hoặc tải kết quả về.