Amazing-Python-Scripts

Форк
0
49 строк · 1.1 Кб
1
from PIL import Image
2

3
ASCII_CHARS = '@B%8WM#*oahkbdpwmZO0QCJYXzcvnxrjft/\|()1{}[]-_+~<>i!lI;:,"^`\'. '
4

5

6
def resize_image(image, new_width=100):
7
    width, height = image.size
8
    ratio = height / width
9
    new_height = int(new_width * ratio)
10
    resized_image = image.resize((new_width, new_height))
11
    return resized_image
12

13

14
def grayify(image):
15
    return image.convert("L")
16

17

18
def pixels_to_ascii(image):
19
    pixels = image.getdata()
20
    ascii_str = ""
21
    for pixel in pixels:
22
        ascii_str += ASCII_CHARS[pixel // 25]
23
    return ascii_str
24

25

26
def main(image_path, new_width=100):
27
    try:
28
        image = Image.open(image_path)
29
    except Exception as e:
30
        print(e)
31
        return
32

33
    image = resize_image(image, new_width)
34
    image = grayify(image)
35
    ascii_str = pixels_to_ascii(image)
36

37
    ascii_width = image.width
38

39
    ascii_img = ""
40
    for i in range(0, len(ascii_str), ascii_width):
41
        ascii_img += ascii_str[i:i+ascii_width] + "\n"
42

43
    print(ascii_img)
44

45

46
if __name__ == "__main__":
47
    image_path = "pngwing.com (1).png"
48
    new_width = 100
49
    main(image_path, new_width)
50

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.