Python將圖片模糊字元化
阿新 • • 發佈:2018-11-17
# codeLib = '''@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,"^`'. ''' # 字元列表 codeLib = '''@#$%&?*aeoc=<{[(/l|!-_:;,."'^~` ''' from PIL import Image # print(len(codeLib)) # 將彩色圖片轉化為黑白的 # im = Image.open('reba.jpg') # result = im.convert("L") # result.save("result_2.jpg","jpeg") # 計算字元列表的長度 count = len(codeLib) # 定義轉化的函式,方便在主函式一次或多次呼叫 def trans_photo(image_file) : # 將彩色圖片轉化為黑白的圖片 image_file = image_file.convert("L") codePic = '' # 迴圈圖片的寬高,並得到每一畫素的灰度值 for h in range(0, image_file.size[1]) : for w in range(0, image_file.size[0]) : gray = image_file.getpixel((w, h)) # 將對應的灰度值對映到字元 codePic = codePic + codeLib[int(((count)*gray)/256)] # 實現每行結尾處自動換行 codePic = codePic + '\r\n' return codePic if __name__ == "__main__" : # 以二進位制讀取圖片檔案 fp = open('E:\\picture\\python\\a.jpg','rb') image_file = Image.open(fp) # 將圖片進行適當的放大或者縮小 image_file = image_file.resize((int(image_file.size[0]/8), int(image_file.size[1]/16))) # 以寫的形式開啟w.txt檔案 tmp = open("E:\\picture\\w.txt","w") # 將最終得到的codePic寫到檔案中 tmp.write(trans_photo(image_file)) tmp.close()
效果如圖