嘿嘿嘿!!!python
我是隻可耐的測試妹子,喜歡玩也喜歡學習,以前同事們建議我開通GitHub來記錄學習心得以及項目代碼,我也以爲頗有必要!!sogit
最近在學習python,寫了一個有趣的關於圖片處理的程序,雖然很簡單拙劣可是仍是滿滿的開心,但願之後能常常在github上面記錄關於學習的有趣事情!github
so分割線||我要開始po這個簡單有趣的程序了,瞭解程序請往下看:app
首先打開cmd:函數
cmd 中pip install pillow 安裝這個圖形處理庫學習
打開pycharm新建項目 ImageToStr.py測試
from PIL import Image #引入圖形處理包Image類對象
image_name = 'IMG_20180414_112918.jpg'#獲取圖片這裏圖片放入這個項目文件夾中圖片
img = Image.open(image_name)#使用對象讀取圖片ip
img = img.convert('L')#圖片轉換成灰度模式 img.size img.mode img.show()獲取圖片大小 模式
img.save('圖片名稱') #保存該轉換成灰度模式的圖片
w, h = img.size #獲取縮放比例的圖片
if w > 100:
h = int((100 / w) * h / 2)
w = 100
# 重置圖片大小且爲防止圖片鋸齒加一個濾鏡
img=img.resize((w,h),Image.ANTIALIAS)
data=[]
# 替換字符的列表
chars=['',',','?','。','.','N','m']
# 根據圖片的寬度和高度遍歷像素點並取出每一個像素點的顏色值
for i in range(0,h):
line=''
for j in range(0,w):
# 獲取像素點的值
pi=img.getpixel((j,i))
# 用字符串替換像素點的顏色
for k in range(0,8):
if pi<(k+1)*32:
line += chars[7-k]
break
data.append(line)#把全部數據一次循環存入data中
f=open(image_name+'.txt','w')#以寫的方式新建並打開一個文本
for d in data:
print(d,file=f) 循環讀取data數據並存入該文檔
f.close()
img.show()
_____________________分割線!!!!!!!!!!
還能夠對該零零散散的代碼重構,把保存和獲取字符寫成函數而後調用整潔簡單而且能重複利用,而且能夠加入入口命令。
代碼以下
from PIL import Image
def save(image_name,data):
f=open(image_name+'.txt','w')#以寫的方式新建並打開一個文本
for d in data:
print(d,file=f) 循環讀取data數據並存入該文檔
f.close()
def get_chars(pi):
chars=['',',','?','。','.','N','m']
for k in range(0,8):
if pi<(k+1)*32:
return chars[7-k]
if __name__=‘__main__’:
image_name = 'IMG_20180414_112918.jpg'#獲取圖片這裏圖片放入這個項目文件夾中
img = Image.open(image_name)#使用對象讀取圖片
img = img.convert('L')#圖片轉換成灰度模式 img.size img.mode img.show()獲取圖片大小 模式
img.save('圖片名稱') #保存該轉換成灰度模式的圖片
w, h = img.size #獲取縮放比例的圖片
if w > 100:
h = int((100 / w) * h / 2)
w = 100
# 重置圖片大小且爲防止圖片鋸齒加一個濾鏡
img=img.resize((w,h),Image.ANTIALIAS)
data=[]
# 替換字符的列表
# 根據圖片的寬度和高度遍歷像素點並取出每一個像素點的顏色值
for i in range(0,h):
line=''
for j in range(0,w):
# 獲取像素點的值
pi=img.getpixel((j,i))
# 用字符串替換像素點的顏色
for k in range(0,8):
if pi<(k+1)*32:
line +=get_chars(pi)
break
data.append(line)#把全部數據一次循環存入data中
save(image_name,data)
醬紫就能夠了,哇咔咔!!!
下面看看我處理過的圖片效果吧:
是否是頗有趣啊,快動手試試吧!!!