Maison > Article > développement back-end > Comment utiliser Python pour convertir des images en peintures de personnages
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;:,\"^`'. ") WIDTH = 130 HEIGHT = 50 def get_char(r,g,b,alpha = 256): if alpha == 0: return ' ' 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__ == '__main__': 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 += '\n' print(txt) |
如果想要输出到文件,可以在定义的部分,加上想要保存的文件名 OUTPUT = 'output.txt'
pip install Pillow
. Si 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 :
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!