Comment utiliser Python pour convertir des images en peintures de personnages

王林
Libérer: 2023-05-17 14:34:06
avant
1645 Les gens l'ont consulté

Tout d'abord, il y a un problème, qui est de simuler des niveaux de gris. Voici une formule :

1
Copier après la connexion
Gray = 0.2126 × R + 0.7152 × G + 0.0722 × B
Copier après la connexion

C'est facile à gérer. Bien entendu, en mode RVB, bien que la gamme de couleurs de 256x256x256 soit convertie en une gamme de niveaux de gris de 256, les caractères ne sont toujours pas en correspondance biunivoque. Nous pouvons résoudre ce problème en utilisant un caractère pour correspondre à plusieurs niveaux de gris.

N'oubliez pas d'installer d'abord la bibliothèque PIL, notamment :

S'il s'agit de Python 2, exécutez pip install PIL. pip install PIL

如果是Python 3,运行 pip install pillow

接下来直接上代码吧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Copier après la connexion
from PIL import Image
#设置显示的字符集
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`&#39;. ")    
WIDTH = 130
HEIGHT = 50
def get_char(r,g,b,alpha = 256):
    if alpha == 0:
        return &#39; &#39;
    length = len(ascii_char)
    gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
    unit = (255.0 + 1)/length
    return ascii_char[int(gray/unit)]
if __name__ == &#39;__main__&#39;:
    img = "E:/WindowsDocuments/G7/Desktop/1.png"
    im = Image.open(img)
    im = im.resize((WIDTH,HEIGHT), Image.NEAREST)
    txt = ""
    for i in range(HEIGHT):
        for j in range(WIDTH):
            txt += get_char(*im.getpixel((j,i)))
        txt += &#39;\n&#39;
    print(txt)
Copier après la connexion

如果想要输出到文件,可以在定义的部分,加上想要保存的文件名 OUTPUT = &#39;output.txt&#39;

S'il s'agit de Python 3, exécutez pip install Pillow. Passons directement au code :
1
2
Copier après la connexion
with open(OUTPUT, &#39;w&#39;) as f:
    f.write(txt)
Copier après la connexion

Comment utiliser Python pour convertir des images en peintures de personnagesSi vous souhaitez sortir dans un fichier, vous pouvez ajouter le nom du fichier que vous souhaitez enregistrer dans la partie définition OUTPUT = 'output.txt', puis écrivez à la fin :

🎜🎜🎜🎜rrreee🎜🎜rrreee🎜🎜🎜🎜🎜Finalement, nous obtenons ceci : 🎜🎜🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal