圖片轉換成字符圖


這個程序的核心思想就是將圖片的每種顏色與一個字符形成映射關系,然后用字符來表示該種顏色。

我們可以首先可以獲取每個像素點的r,g,b值,然后通過公式:

gray = 0.2126 * r + 0.7152 * g + 0.0722 * b

就可以得到每個像素點的灰度值。

准備好一串字符串,將不同的灰度值與不同的字符進行映射即可。

 1 from PIL import Image
 2 
 3 change_char = list("@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,")
 4 length = len(change_char)
 5 f = open('result.txt', 'w')
 6 
 7 def get_gray(im):
 8     txt = ''
 9     im = im.resize((int(im.size[0]*0.5), int(im.size[1]*0.4)))
10     width, height = im.size
11     for h in range(height):
12         for w in range(width):
13             r,g,b = im.getpixel((w,h))
14             gray = int(0.2126*r + 0.7152*g + 0.0722*b)
15             unit = (256 + 1)/length
16             txt = txt + change_char[int(gray/unit)]
17         txt = txt + '\n'
18     f.write(txt)
19 
20 
21 if __name__ == '__main__':
22     im = Image.open('pic.jpg')
23     get_gray(im)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM