Amazing-Python-Scripts
49 строк · 1.1 Кб
1from PIL import Image
2
3ASCII_CHARS = '@B%8WM#*oahkbdpwmZO0QCJYXzcvnxrjft/\|()1{}[]-_+~<>i!lI;:,"^`\'. '
4
5
6def resize_image(image, new_width=100):
7width, height = image.size
8ratio = height / width
9new_height = int(new_width * ratio)
10resized_image = image.resize((new_width, new_height))
11return resized_image
12
13
14def grayify(image):
15return image.convert("L")
16
17
18def pixels_to_ascii(image):
19pixels = image.getdata()
20ascii_str = ""
21for pixel in pixels:
22ascii_str += ASCII_CHARS[pixel // 25]
23return ascii_str
24
25
26def main(image_path, new_width=100):
27try:
28image = Image.open(image_path)
29except Exception as e:
30print(e)
31return
32
33image = resize_image(image, new_width)
34image = grayify(image)
35ascii_str = pixels_to_ascii(image)
36
37ascii_width = image.width
38
39ascii_img = ""
40for i in range(0, len(ascii_str), ascii_width):
41ascii_img += ascii_str[i:i+ascii_width] + "\n"
42
43print(ascii_img)
44
45
46if __name__ == "__main__":
47image_path = "pngwing.com (1).png"
48new_width = 100
49main(image_path, new_width)
50