Trong bài viết này, chúng ta sẽ học cách in văn bản có màu trong Python. Chúng tôi sẽ sử dụng một số mô-đun và thư viện tích hợp cũng như một số mã tùy chỉnh. Trước tiên chúng ta hãy xem nhanh cách Python đại diện cho mã màu
Trong ngôn ngữ lập trình Python, văn bản có thể được thể hiện bằng các màu khác nhau. Có các thư viện Python rất đơn giản để sử dụng cho màu sắc và định dạng trong thiết bị đầu cuối. Lập trình viên nhận được phản hồi tốt hơn bằng cách in văn bản màu
Hãy xem một số ví dụ hữu ích để tô màu văn bản trong Python
In văn bản màu bằng Mô-đun colorama
Chúng ta có thể sử dụng mô-đun colorama
tích hợp sẵn của Python để in văn bản đầy màu sắc. Nó là một mô-đun in đa nền tảng. Trong phần này, văn bản màu có thể được thực hiện bằng cách sử dụng tốc ký hằng số Colorama’s
cho chuỗi thoát ANSI
. Chỉ cần nhập từ mô-đun coloroma và nhận đầu ra mong muốn của bạn
import colorama
from colorama import Fore
print[Fore.RED + 'This text is red in color']
Văn bản này có màu đỏ
In văn bản màu bằng mô-đun termcolor
Chúng ta có thể sử dụng mô-đun termcolor tích hợp để in màu văn bản trong Python. Thuật ngữ màu là một mô-đun python để định dạng Màu ANSII cho đầu ra trong thiết bị đầu cuối. Đối với điều này, mô-đun sys
phải được nhập trước và sau đó được tô màu từ mô-đun termcolor như bên dưới
import sys
from termcolor import colored, cprint
text = colored['Hello, World!', 'red', attrs=['reverse', 'blink']]
print[text]
Chào thế giới
In văn bản màu bằng mã ANSI trong Python
Chúng tôi có thể sử dụng kiểu mã ANSI để làm cho văn bản của bạn dễ đọc và sáng tạo hơn, bạn có thể sử dụng mã thoát ANSI để thay đổi màu của đầu ra văn bản trong chương trình python. Một trường hợp sử dụng tốt cho việc này là làm nổi bật các lỗi. Các mã thoát được nhập ngay vào câu lệnh in
print["\033[1;32m This text is Bright Green \n"]
Văn bản này có màu xanh sáng
Mã thoát ANSI ở trên sẽ đặt màu văn bản thành màu xanh lá cây tươi sáng. Định dạng là;
- \033[ = Mã thoát, mã này luôn giống nhau
- 1 = Phong cách, 1 cho bình thường
- 32 = Màu văn bản, 32 cho màu xanh lục sáng
In văn bản màu bằng mô-đun màu
Chúng ta có thể sử dụng mô-đun color và các chức năng của nó để tô màu văn bản trong Python. Nó là một thư viện có thể được sử dụng sau khi cài đặt bằng cách sử dụng lệnh pip. Vì vậy, trước tiên, hãy cài đặt nó và sau đó nhập nó vào tập lệnh python của bạn để làm nổi bật màu văn bản
from colored import fg
print ['%s Hello World !!! %s' % [fg[1], attr[0]]]
Chào thế giới
ví dụ 2
Chúng ta cũng có thể chuyển tên của màu vào hàm fg[]. Thấy chưa, nó in văn bản có màu xanh lam khi chúng tôi chuyển màu xanh lam làm giá trị
from colored import fg
color = fg['blue']
print [color + 'Hello World !!!']
Chào thế giới
Đây là những cách khác nhau để bạn có thể in văn bản của mình bằng các màu khác nhau. Bạn cũng có thể thêm các kiểu khác nhau vào văn bản của mình, các màu nền khác nhau cho văn bản của bạn
Phần kết luận
Trong bài viết này, chúng ta đã học cách tô màu văn bản và in nền màu bằng cách sử dụng một số chức năng tích hợp như mô-đun coloroma
, mô-đun
import sys
from termcolor import colored, cprint
text = colored['Hello, World!', 'red', attrs=['reverse', 'blink']]
print[text]
0, import sys
from termcolor import colored, cprint
text = colored['Hello, World!', 'red', attrs=['reverse', 'blink']]
print[text]
1, v.v. Chúng tôi cũng đã sử dụng một số mã tùy chỉnh. Ví dụ: chúng tôi đã sử dụng các màu và văn bản khác nhau để đánh dấu và in văn bản có màu Trong chương về vẽ hình, chúng ta chỉ sử dụng các kiểu tô và đường mặc định. Ở đây chúng ta sẽ khám phá các tùy chọn canvas mà chúng ta có để làm cho bản vẽ của chúng ta hấp dẫn hơn một chút. Bạn sẽ học cách thêm các màu khác nhau, kiểu đường kẻ, độ dốc, hoa văn và bóng đổ vào bản vẽ của mình
Ghi chú. Trình đọc màn hình không thể truy cập nội dung canvas. Nếu canvas hoàn toàn là trang trí, hãy bao gồm
function draw[] {
const ctx = document.getElementById["canvas"].getContext["2d"];
for [let i = 0; i
0. Nếu không, hãy bao gồm văn bản mô tả dưới dạng giá trị của thuộc tính
1 trực tiếp trên chính phần tử canvas hoặc bao gồm nội dung dự phòng được đặt trong thẻ canvas mở và đóng. Nội dung canvas không phải là một phần của DOM, nhưng nội dung dự phòng lồng nhau làCho đến bây giờ chúng ta mới chỉ thấy các phương pháp của ngữ cảnh vẽ. Nếu chúng ta muốn áp dụng màu sắc cho một hình dạng, có hai thuộc tính quan trọng mà chúng ta có thể sử dụng.
2 và
3
4Đặt kiểu được sử dụng khi tô hình
5Đặt kiểu cho các đường viền của hình dạng
6 là một chuỗi đại diện cho CSS
7, đối tượng gradient hoặc đối tượng mẫu. Chúng ta sẽ xem xét các đối tượng gradient và pattern sau. Theo mặc định, nét viền và màu tô được đặt thành màu đen [giá trị màu CSS
8]Ghi chú. Khi bạn đặt thuộc tính
3 và/hoặc
2, giá trị mới sẽ trở thành giá trị mặc định cho tất cả các hình dạng được vẽ từ đó trở đi. Đối với mọi hình dạng bạn muốn có màu khác nhau, bạn sẽ cần chỉ định lại thuộc tính
2 hoặc
3Các chuỗi hợp lệ mà bạn có thể nhập phải, theo thông số kỹ thuật, là các giá trị CSS
7. Mỗi ví dụ sau mô tả cùng một màu// these all set the fillStyle to 'orange'
ctx.fillStyle = "orange";
ctx.fillStyle = "#FFA500";
ctx.fillStyle = "rgb[255, 165, 0]";
ctx.fillStyle = "rgba[255, 165, 0, 1]";
Trong ví dụ này, một lần nữa chúng ta sử dụng hai vòng lặp
draw[];
5 để vẽ một lưới các hình chữ nhật, mỗi hình có một màu khác nhau. Hình ảnh kết quả sẽ trông giống như ảnh chụp màn hình. Không có gì quá ngoạn mục xảy ra ở đây. Chúng tôi sử dụng hai biến draw[];
6 và draw[];
7 để tạo màu RGB duy nhất cho mỗi hình vuông và chỉ sửa đổi các giá trị màu đỏ và xanh lục. Kênh màu xanh có giá trị cố định. Bằng cách sửa đổi các kênh, bạn có thể tạo tất cả các loại bảng màu. Bằng cách tăng các bước, bạn có thể đạt được thứ gì đó trông giống như bảng màu mà Photoshop sử dụngfunction draw[] {
const ctx = document.getElementById["canvas"].getContext["2d"];
for [let i = 0; i A 6 by 6 square grid displaying 36 different colors
draw[];
Kết quả trông như thế này
Ảnh chụp màn hìnhMẫu trực tiếpVí dụ này tương tự như ví dụ trên, nhưng sử dụng thuộc tính
3 để thay đổi màu sắc của đường viền của hình dạng. Chúng tôi sử dụng phương pháp // Assigning transparent colors to stroke and fill style
ctx.strokeStyle = "rgba[255, 0, 0, 0.5]";
ctx.fillStyle = "rgba[255, 0, 0, 0.5]";
0 để vẽ hình tròn thay vì hình vuôngfunction draw[] {
const ctx = document.getElementById["canvas"].getContext["2d"];
for [let i = 0; i
3 và
2 chấp nhận các giá trị màu CSS rgba, nên chúng ta có thể sử dụng ký hiệu sau để gán màu trong suốt cho chúng// Assigning transparent colors to stroke and fill style
ctx.strokeStyle = "rgba[255, 0, 0, 0.5]";
ctx.fillStyle = "rgba[255, 0, 0, 0.5]";
Hàm
// Assigning transparent colors to stroke and fill style
ctx.strokeStyle = "rgba[255, 0, 0, 0.5]";
ctx.fillStyle = "rgba[255, 0, 0, 0.5]";
6 tương tự như hàm // Assigning transparent colors to stroke and fill style
ctx.strokeStyle = "rgba[255, 0, 0, 0.5]";
ctx.fillStyle = "rgba[255, 0, 0, 0.5]";
7 nhưng nó có thêm một tham số. Tham số cuối cùng đặt giá trị độ trong suốt của màu cụ thể này. Phạm vi hợp lệ lại nằm trong khoảng từ 0. 0 [hoàn toàn trong suốt] và 1. 0 [đục hoàn toàn]Trong ví dụ này, chúng ta sẽ vẽ nền gồm bốn hình vuông có màu khác nhau. Trên hết, chúng ta sẽ vẽ một tập hợp các vòng tròn bán trong suốt. Thuộc tính
// Assigning transparent colors to stroke and fill style
ctx.strokeStyle = "rgba[255, 0, 0, 0.5]";
ctx.fillStyle = "rgba[255, 0, 0, 0.5]";
1 được đặt tại function draw[] {
const ctx = document.getElementById["canvas"].getContext["2d"];
// draw background
ctx.fillStyle = "#FD0";
ctx.fillRect[0, 0, 75, 75];
ctx.fillStyle = "#6C0";
ctx.fillRect[75, 0, 75, 75];
ctx.fillStyle = "#09F";
ctx.fillRect[0, 75, 75, 75];
ctx.fillStyle = "#F30";
ctx.fillRect[75, 75, 75, 75];
ctx.fillStyle = "#FFF";
// set transparency value
ctx.globalAlpha = 0.2;
// Draw semi transparent circles
for [let i = 0; i
2, bạn sẽ có tình huống trong hình ảnh thứ hai. Khu vực thực tế được lấp đầy [màu xanh đậm] chỉ kéo dài một nửa thành các pixel ở hai bên của đường dẫn. Một giá trị gần đúng của điều này phải được hiển thị, có nghĩa là những pixel đó chỉ được tô bóng một phần và dẫn đến toàn bộ khu vực [màu xanh lam nhạt và xanh lam đậm] được tô bằng màu chỉ tối bằng một nửa so với màu nét vẽ thực tế. Đây là những gì xảy ra với dòng chiều rộng
2 trong mã ví dụ trướcĐể khắc phục điều này, bạn phải rất chính xác trong việc tạo đường dẫn của mình. Biết rằng một đường có chiều rộng
2 sẽ kéo dài nửa đơn vị sang hai bên của đường đi, tạo ra đường đi từ [3. 5,1] đến [3. 5,5] dẫn đến tình huống trong ảnh thứ ba—chiều rộng của dòng
2 kết thúc hoàn toàn và lấp đầy chính xác một đường dọc pixel đơn lẻGhi chú. Xin lưu ý rằng trong ví dụ về đường thẳng đứng của chúng ta, vị trí Y vẫn tham chiếu đến một vị trí đường lưới số nguyên—nếu không, chúng ta sẽ thấy các pixel có độ bao phủ một nửa ở các điểm cuối [nhưng cũng lưu ý rằng hành vi này phụ thuộc vào kiểu
6 hiện tại có kiểu mặc định Cũng lưu ý rằng chỉ điểm đầu và điểm cuối của đường dẫn mới bị ảnh hưởng. nếu một đường dẫn bị đóng với
function draw[] {
const ctx = document.getElementById["canvas"].getContext["2d"];
for [let i = 0; i
6 xác định cách các điểm cuối của mỗi dòng được vẽ. Có ba giá trị có thể có cho thuộc tính này và đó là.
7, function draw[] {
const ctx = document.getElementById["canvas"].getContext["2d"];
for [let i = 0; i
9. Theo mặc định, thuộc tính này được đặt thành
7
7Các đầu của dòng được bình phương tại các điểm cuối
function draw[] {
const ctx = document.getElementById["canvas"].getContext["2d"];
for [let i = 0; i
9Các đầu của dòng được bình phương bằng cách thêm một hộp có chiều rộng bằng một nửa chiều cao của độ dày của dòng
Trong ví dụ này, chúng ta sẽ vẽ ba dòng, mỗi dòng có một giá trị khác nhau cho thuộc tính
6. Tôi cũng đã thêm hai hướng dẫn để xem sự khác biệt chính xác giữa ba. Mỗi dòng này bắt đầu và kết thúc chính xác trên các hướng dẫn nàyDòng bên trái sử dụng tùy chọn
7 mặc định. Bạn sẽ nhận thấy rằng nó được vẽ hoàn toàn phẳng với các hướng dẫn. Thứ hai được đặt để sử dụng tùy chọn function draw[] {
const ctx = document.getElementById["canvas"].getContext["2d"];
for [let i = 0; i
9. Điều này thêm một hộp có chiều rộng bằng và một nửa chiều cao của độ dày đườngfunction draw[] {
const ctx = document.getElementById["canvas"].getContext["2d"];
for [let i = 0; i A 6 by 6 square grid displaying 36 different colors
5Ảnh chụp màn hìnhMẫu trực tiếpPhương thức
function draw[] {
const ctx = document.getElementById["canvas"].getContext["2d"];
for [let i = 0; i A 6 by 6 square grid displaying 36 different colors
7Ảnh chụp màn hìnhMẫu trực tiếpGiống như bất kỳ chương trình vẽ thông thường nào, chúng ta có thể tô và vẽ các hình dạng bằng cách sử dụng các gradient tuyến tính, xuyên tâm và hình nón. Chúng tôi tạo một đối tượng
function draw[] {
const ctx = document.getElementById["canvas"].getContext["2d"];
for [let i = 0; i
2 hoặc
3function draw[] {
const ctx = document.getElementById["canvas"].getContext["2d"];
for [let i = 0; i
2 đều có thể chấp nhận đối tượng function draw[] {
const ctx = document.getElementById["canvas"].getContext["2d"];
for [let i = 0; i A 6 by 6 square grid displaying 36 different colors
03 và A 6 by 6 square grid displaying 36 different colors
04 cho biết bóng sẽ kéo dài bao xa từ đối tượng theo hướng X và Y; . Sử dụng các giá trị âm để làm cho bóng mở rộng lên hoặc sang trái và các giá trị dương để làm cho bóng kéo dài xuống hoặc sang phải. Cả hai đều là 0 theo mặc địnhThuộc tính
A 6 by 6 square grid displaying 36 different colors
05 cho biết kích thước của hiệu ứng làm mờ; . Giá trị mặc định là 0Thuộc tính
A 6 by 6 square grid displaying 36 different colors
06 là một giá trị màu CSS tiêu chuẩn cho biết màu của hiệu ứng đổ bóng; Ghi chú. Bóng chỉ được vẽ cho các hoạt động tổng hợp
A 6 by 6 square grid displaying 36 different colors
07Ví dụ này vẽ một chuỗi văn bản có hiệu ứng đổ bóng
function draw[] {
const ctx = document.getElementById["canvas"].getContext["2d"];
for [let i = 0; i A 6 by 6 square grid displaying 36 different colors
08 và phương thức A 6 by 6 square grid displaying 36 different colors
09 trong chương tiếp theo về vẽ văn bản. Khi sử dụng
A 6 by 6 square grid displaying 36 different colors
10 [hoặc A 6 by 6 square grid displaying 36 different colors
11 và A 6 by 6 square grid displaying 36 different colors
12], bạn có thể tùy chọn cung cấp thuật toán quy tắc lấp đầy để xác định xem một điểm nằm trong hay ngoài một đường dẫn và do đó liệu nó có được lấp đầy hay không. Điều này hữu ích khi một đường dẫn cắt chính nó hoặc được lồng vào nhau