Maison  >  Article  >  développement back-end  >  Comment utiliser Python pour convertir des images en peintures de personnages

Comment utiliser Python pour convertir des images en peintures de personnages

王林
王林avant
2023-05-17 14:34:061640parcourir

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

1
Gray = 0.2126 × R + 0.7152 × G + 0.0722 × B

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
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)

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

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

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer