Xin chào tất cả, trong hướng dẫn nhanh hôm nay, tôi sẽ cho bạn xem một kịch bản Python nhỏ chuyển đổi các tệp hình ảnh thành nghệ thuật ASCII đẹp.
Đây là hình ảnh thử nghiệm của chúng tôi:
Hãy nhảy vào mã:
Đầu tiên chúng ta cần nhập các phụ thuộc của mình:
import sys
from PIL import Image
from termcolor import colored
import colorama
Nhập chế độ FullScreenen EXIT Mode FullScreen
Đầu tiên chúng ta cần đọc hình ảnh của mình:
colorama.init[]
try:
image_path = sys.argv[1].strip['-']
except:
image_path = input['test1.jpg']
Nhập chế độ FullScreenen EXIT Mode FullScreen
Đầu tiên chúng ta cần đọc hình ảnh của mình:
class AsciiArt:
def __init__[self, img_path]:
self.path = image_path
self.img = Image.open[self.path]
def image[self]:
Nhập chế độ FullScreenen EXIT Mode FullScreen
Đầu tiên chúng ta cần đọc hình ảnh của mình:
width, height = self.img.size
aspect_ratio = height/width
new_width = 120
new_height = aspect_ratio * new_width * 0.55
img = self.img.resize[[new_width, int[new_height]]]
Nhập chế độ FullScreenen EXIT Mode FullScreen
Đầu tiên chúng ta cần đọc hình ảnh của mình:
img = img.convert['L']
pixels = img.getdata[]
Nhập chế độ FullScreenen EXIT Mode FullScreen
Đầu tiên chúng ta cần đọc hình ảnh của mình:
chars = ["B", "S", "#", "&", "@", "$", "%", "*", "!", ":", "."]
new_pixels = [chars[pixel//25] for pixel in pixels]
new_pixels = ''.join[new_pixels]
Nhập chế độ FullScreenen EXIT Mode FullScreen
Đầu tiên chúng ta cần đọc hình ảnh của mình:
new_pixels_count = len[new_pixels]
ascii_image = [new_pixels[index:index + new_width]
for index in range[0, new_pixels_count, new_width]]
ascii_image = "\n".join[ascii_image]
print[ascii_image]
Nhập chế độ FullScreenen EXIT Mode FullScreen
Đầu tiên chúng ta cần đọc hình ảnh của mình:
file = "ascii_image.txt"
with open[file, "w"] as f:
f.write[ascii_image]
print[colored[f"saved art image to file as {file}", "yellow"]]
Nhập chế độ FullScreenen EXIT Mode FullScreen
Đầu tiên chúng ta cần đọc hình ảnh của mình:
if __name__ == "__main__":
AsciiArt[image_path].image[]
Nhập chế độ FullScreenen EXIT Mode FullScreen
Đầu tiên chúng ta cần đọc hình ảnh của mình:
Sau đó, chúng tôi sẽ chuyển đổi nó thành thang độ xám