第一個有趣的python小程序

 嘿嘿嘿!!!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)  

醬紫就能夠了,哇咔咔!!! 

下面看看我處理過的圖片效果吧:        

 

 

是否是頗有趣啊,快動手試試吧!!!

相關文章
相關標籤/搜索