Trình tạo văn bản nghệ thuật ASCII

Biến đổi bất kỳ văn bản nào thành ký tự ASCII art lớn. Chọn từ nhiều kiểu phông chữ.

Đầu ra


    

ASCII art là gì?

ASCII art sử dụng các ký tự có thể in được để tạo ra các thiết kế trực quan. Nó thường được sử dụng trong các bình luận mã, README, biểu ngữ terminal và trang trí kiểu retro. Mỗi ký tự trong văn bản của bạn được hiển thị dưới dạng một mẫu lớn được tạo từ các ký tự văn bản.

Từ máy điện báo đến FIGlet, lược sử ngắn gọn

Nghệ thuật chữ-thành-hình có nguồn gốc còn xa hơn cả máy tính. Nghệ thuật máy đánh chữ và "nghệ thuật ruy băng", những hình ảnh tạo bằng các ký tự máy đánh chữ, đã xuất hiện trên các tạp chí chuyên ngành từ thập niên 1890. Phương tiện này tự nhiên chuyển sang các máy số ban đầu: máy in dòng và thiết bị đầu cuối điện báo chỉ hiển thị được ký tự đơn cách, nên bất kỳ hình ảnh nào cần xuất hiện trong bản in từ máy tính đều phải dựng từ ký tự. Những bản in Snoopy và Mona Lisa nổi tiếng của thập niên 1960 và 1970, nghệ thuật thiệp Giáng sinh in trên máy in dòng tại các trung tâm máy tính đại học, các "art pack" BBS đầu tiên trao đổi qua các BBS quay số trong thập niên 1980, tất cả đều là tổ tiên trực tiếp. FIGlet (Frank, Ian and Glenn's Letters) ra đời năm 1991 do Glenn Chappell tạo, với đóng góp về sau của Ian Chai và John Cowan. FIGlet giới thiệu định dạng phông .flf quy định cách dựng nghệ thuật chữ lớn cho từng chữ cái ASCII, và đi kèm thư viện phông có tên ("Banner", "Block", "Big", "Bubble", "Standard", "Slant", "Shadow", "Lean" và hàng chục thiết kế khác). Phông được người dùng đóng góp suốt nhiều thập niên, đến cuối thập niên 1990 thư viện phông FIGlet đã vượt 200 thiết kế riêng biệt. Các trình tạo nghệ thuật ASCII hiện đại (kể cả công cụ này, về mặt khái niệm) sử dụng định nghĩa phông kiểu FIGlet hoặc port trực tiếp từ figlet.js, bản triển khai lại bằng JavaScript, nên các tùy chọn phông khả dụng năm 2026 về cơ bản vẫn là chính các phông mà cộng đồng FIGlet đã xây dựng trong thập niên 1990 và 2000.

Truyền thống demoscene và nghệ thuật ANSI

Nghệ thuật ASCII thuần có một người anh em: nghệ thuật ANSI, sử dụng các ký tự mở rộng trong code page 437 của IBM PC (ký tự kẻ khung, các khối tô đậm ░ ▒ ▓ █, nửa khối, hình hình học) cùng các chuỗi escape ANSI để tạo màu. Nghệ thuật ANSI là thẩm mỹ chủ đạo của văn hóa BBS quay số cuối thập niên 1980 và 1990, gồm màn hình chào, giao diện menu, và các tác phẩm chữ ký của các hệ thống bảng tin điện tử. Các nhóm như ACiD Productions (thành lập năm 1990) và ICE (Insane Creators Enterprise, 1993) phát hành "art pack" hằng tháng, các tuyển tập tác phẩm ANSI chia sẻ dưới dạng kho ZIP qua mạng BBS, đã nâng nghệ thuật chế độ ký tự lên hàng nghệ thuật số được công nhận với tên tuổi nghệ sĩ rõ ràng, lễ hội (NAID, Block Party, Demosplash) và chấm thi đấu. Demoscene rộng hơn, tiểu văn hóa châu Âu của các lập trình viên-nghệ sĩ khởi đầu từ việc bẻ khóa bảo vệ sao chép trên các tựa game Commodore 64 và Amiga rồi chuyển sang sản xuất các bản demo nghe-nhìn độc lập, đã giữ cho nghệ thuật chế độ văn bản tiếp tục sống lâu sau khi giao diện thuần ký tự được GUI thay thế. Các bản phân phối Linux hiện đại vẫn cung cấp figlet, toilet (biến thể có màu của figlet), boxes, banner và nhiều công cụ nghệ thuật chữ khác như gói tiêu chuẩn, hậu duệ trực tiếp của cùng nền văn hóa đó.

Các trường hợp sử dụng

Từ vựng phông chữ

Thư viện phông FIGlet đặt tên cho cả một bộ từ vựng phong cách đã trở thành chuẩn. Standard là mặc định quy ước, dáng chữ sans-serif gọn gàng, cao bốn dòng. Banner dùng nét nặng hơn để tạo tác động tối đa, hợp ngay đầu README. Block dùng các khối đặc tô kín, lý tưởng khi muốn truyền đạt "đây là logo" không chút nhập nhằng. Big cao hơn Standard, kịch tính hơn. Bubble dùng hình bo tròn, đọc lên có cảm giác thân thiện. SlantLean là biến thể nghiêng. Shadow thêm hiệu ứng đổ bóng. 3D-ASCII thử tạo phối cảnh, kết quả thay đổi tùy nội dung. Mini là phông gọn cho không gian chật. Letters, Doom, Speed, Rounded, Script, Star Wars, Goofy, Italic, Roman, Univers, thư viện phông FIGlet có hàng trăm tùy chọn, do từng nghệ sĩ riêng lẻ đóng góp suốt ba thập niên. Việc chọn phông quan trọng ít hơn việc phông đó hiển thị thế nào trong terminal của bạn, các phông trông đẹp trong ảnh chụp rộng có thể bị tràn trong cửa sổ chat hẹp, các phông đọc gọn ở chế độ đơn cách có thể nhòe trong client email phông tỉ lệ (luôn kiểm tra tại chính nơi người nhận sẽ nhìn thấy).

Cân nhắc thực tế khi chia sẻ nghệ thuật ASCII

Luôn bọc trong ngữ cảnh độ rộng cố định. Nghệ thuật ASCII dựa vào việc mỗi ký tự chiếm cùng độ rộng, các phông tỉ lệ (mặc định trong hầu hết trình xử lý văn bản và nhiều client email) sẽ phá vỡ căn lề. Trong Markdown, hãy bọc bằng khối mã (rào ba backtick). Trong HTML, dùng <pre> hoặc <code> với phông đơn cách. Trong Slack, dùng cú pháp khối mã ba backtick. Trong email, gửi văn bản thuần hoặc đặt phông đơn cách trong trình soạn rich-text. Để ý độ rộng dòng. Mỗi phông tạo ra đầu ra có độ rộng-mỗi-ký-tự khác nhau, các từ dài hoặc phông ngắn cho ra đầu ra rộng có thể bị xuống dòng trên màn hình hẹp. Hãy thử với một chuỗi nguồn 30 ký tự (giới hạn của công cụ này) ở các độ rộng khác nhau trước khi quyết định một banner sẽ phải hiển thị ở nhiều môi trường. Cẩn thận với mã hóa tệp. ASCII thuần (bộ 7 bit nguyên thủy) đi qua mọi hệ mã hóa mà không thay đổi. Các ký tự mở rộng (kẻ khung, chữ cái có dấu, emoji) đòi hỏi UTF-8 xuyên suốt pipeline, mã hóa lệch nhau sẽ biến ký tự kẻ khung thành mojibake.

Quyền riêng tư: chỉ tạo trong trình duyệt

Văn bản bạn chuyển đổi hiếm khi nhạy cảm (tên dự án, "Hello", một dòng banner) nhưng tính chất kiến trúc thì giống mọi công cụ khác ở đây: không có gì rời khỏi thiết bị của bạn. Việc chuyển đổi chạy hoàn toàn trong trình duyệt qua JavaScript, không upload, không log, không telemetry. Hãy kiểm chứng trong tab Network của DevTools khi bạn bấm qua các tùy chọn phông (không có request nào được gửi đi), hoặc đặt trang offline (chế độ máy bay) sau khi tải xong và trình tạo vẫn hoạt động. Hữu ích khi văn bản bạn chuyển đổi là tên dự án bí mật hoặc mã sản phẩm chưa công bố, dù dữ liệu ngắn, nó vẫn không đi qua bất kỳ log của bên thứ ba nào.

Câu hỏi thường gặp

Giới hạn ký tự cho việc chuyển đổi là bao nhiêu?

30 ký tự trong công cụ này, theo thiết kế. Nghệ thuật ASCII tạo từ chuỗi dài hơn cho ra đầu ra quá rộng so với phần lớn màn hình, cửa sổ terminal và bộ nhớ tạm, và có xu hướng xuống dòng vụng về trong mọi ngữ cảnh hẹp. Với chuỗi rất dài, hãy cân nhắc trải văn bản qua nhiều banner (mỗi từ một banner) hoặc dùng phông gọn hơn như Mini. Phần lớn banner trụ được trên thực tế dài từ năm đến mười lăm ký tự, ngắn, sắc nét, và dễ nhận diện thị giác.

Tôi có thể dùng nghệ thuật được tạo trong mã nguồn hoặc tài liệu không?

Có, ở bất cứ đâu văn bản đơn cách hiển thị đúng. Trong README Markdown, bọc nghệ thuật ASCII trong khối mã ba backtick để bộ render dùng phông độ rộng cố định. Trong mã nguồn, đặt bên trong khối chú thích (/* ... */ trong C/JS, """...""" trong Python). Trong HTML, dùng <pre>. Trong email, gửi văn bản thuần hoặc đặt trình soạn rich-text về phông đơn cách cho khối liên quan. Tránh dán vào các ngữ cảnh phông tỉ lệ (phần lớn trình soạn email rich-text, phần lớn trình xử lý văn bản) khi chưa đổi sang đơn cách trước, phông tỉ lệ sẽ phá căn lề.

Công cụ có hoạt động khi offline không?

Có, một khi trang đã tải xong, toàn bộ phần chuyển đổi chạy trong trình duyệt qua JavaScript với các định nghĩa phông kiểu FIGlet được nhúng sẵn trong trang. Không có cuộc gọi mạng nào được gửi đi khi bạn đổi văn bản hay chọn phông. Hãy đặt trang offline (chế độ máy bay) và trình tạo vẫn hoạt động.

Nghệ thuật ASCII tương tác với trình đọc màn hình ra sao?

Trình đọc màn hình đọc các ký tự bên dưới, đối với một banner chữ-khối lớn, điều đó nghĩa là hàng trăm dấu gạch dưới và sổ đứng được đọc lên, hiếm khi hữu ích. Khuôn mẫu thân thiện trợ năng là (a) chỉ đưa banner vào như phần trang trí, (b) lặp lại văn bản thật trong một heading HTML hoặc đoạn văn bình thường gần đó, và (c) bọc nghệ thuật ASCII trong aria-hidden="true" để trình đọc màn hình bỏ qua. Banner thị giác vẫn ở đó cho người nhìn thấy, văn bản bên dưới được đọc bình thường cho người dùng trình đọc màn hình.

Công cụ liên quan