python图片转字符_二十行python代码实现图片转字符
要達到的效果如下圖所示
或者這樣
源碼如下:
from PIL import Image
ascii_char =list("/\|()1{}$@B%8&WM#ZO0QLCJUYX*hkbdpqwmoahkbdpqwmzcvunxrjft[]?-_+~<>i!lI;:,\"^`'. ")
imgname = "D:/jzm.png"
output ="D:/a.txt"
width =60
height=35
def get_char(r,g,b,alpha= 256):
length = len(ascii_char)
gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
unitcount = (256.0+1)/length
return ascii_char[int(gray/unitcount)]
img = Image.open(imgname)
img = img.resize((width,height),Image.NEAREST)
txt = ""
for i in range(height):
for j in range(width):
txt += get_char(*img.getpixel((j,i)))
txt += '\n'
with open(output,'w') as f:
f.write(txt)
使用python的PIL庫對圖片進行處理,將每個像素映射到70個字符上,再一個個像素輸出即可
代碼注釋:
def get_char(r,g,b,alpha= 256):
length = len(ascii_char)
gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
unitcount = (256.0+1)/length
return ascii_char[int(gray/unitcount)]
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
將彩色圖片的RBG數值轉化為灰度值,并根據字符的個數計算出每個字符對應幾個灰度值,因為灰度值為0~255但只有70個字符符號,大約每個字符對應三個灰度值
img = img.resize((width,height),Image.NEAREST)
對圖片重新設置大小,第二個參數可以設置圖片的質量,有四個選項.NEAREST,BILINEAR,BICUBIC,LANCZOS,默認為第一個,第四個圖像質量最高
txt += get_char(*img.getpixel((j,i)))
img.getpixel(j,i)返回的是一個三元組元素,加*是為了將其分為三個變量值
---------------------
總結
以上是生活随笔為你收集整理的python图片转字符_二十行python代码实现图片转字符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c# xls 复制一行_C# 复制Exc
- 下一篇: 阿里最后一面,高并发下如何设计一个秒杀系