小項目圖像轉換字符串
阿新 • • 發佈:2018-03-19
分享 body txt change 圖像轉換 char lin OS 在線
from PIL import Image
im=r"C:\Users\Achoo\Desktop\love.PNG"#原始圖片路徑
im_path=r"C:\Users\Achoo\Desktop\LOVE.txt"#記事本路徑
zifu="!@#.%^&.()_{}><?@"#字符集
def rgbx(r,g,b,a):
gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)#將rgb值轉換為灰度值
lenght=len(zifu)
id=int(256/lenght)
return zifu[int(gray/id)]#將該灰度值與字符集對應
def change(im,da=10):#將原圖像壓縮
height,width=im.size
print(height,width)
height=int(height/da)
width=int(width/da)
print(height,width)
im=im.resize((height,width))
return im
def imagechar(img_p,savepath):
width,height=img_p.size
txt=""
for i in range(height):
line=""
for j in range(width):
line=line+rgbx(*img_p.getpixel((j,i)))#獲取原像素的rgb值
txt+=line+"\n"
with open(savepath,‘w+‘,encoding=‘utf-8‘) as f:
f.write(txt)
im=Image.open(im)
im=change(im)
imagechar(im,im_path)
第一個小程序遇到挺多問題的,例如剛開始在實驗樓在線敲,好不容易敲完了,網斷了,又重新敲一回
利用resize變化圖像尺寸時,傳遞的參數為整數
getpixel((x,y))獲取(x,y)位置上的RGB值
小項目圖像轉換字符串