用練習學習python3. #!/usr/bin/env python3 #-*- coding:utf-8 -*- from PIL import Image import argparse ''' argparse模塊使得編寫用戶友好的命令行接口非常容易。程序只需定義好它要求的參數,然後argparse將負責如何從sys.argv中解析出這些參數。argparse模塊還會自動生成幫助和使用信息並且當用戶賦給程序非法的參數時產生錯誤信息。 使用步驟: 1、導入模塊 import argparse 2、創建一個解析對象 parser = argparse.ArgumentParser() 3、添加需要增加的參數,每一個add_argument方法對應一個你要關注的參數或選項 parser.add_argument() 4、最後調用parse_args()方法進行解析 parser.parse_args() ''' #命令行輸入參數 parser = argparse.ArgumentParser() #輸入文件 parser.add_argument('file') #輸出文件 parser.add_argument('-o','--output') #輸出字符畫寬 parser.add_argument('--width',type = int,default = 80) #輸出字符畫高 parser.add_argument('--height',type = int,default = 80) #獲取參數 args = parser.parse_args() IMG = args.file WIDTH = args.width HEIGHT = args.height OUTPUT = args.output #ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") #字符集可以根據字符畫的效果反覆調試,字符種類越多可以表現的顏色也越多,圖片更有層次感。 ascii_char = list("************* ") #灰度值指黑白圖像中點的顏色深度,範圍一般從0到255,白色爲255,黑色爲0,故黑白圖片也稱灰度圖像 #灰度值公式有很多: gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) def get_char(r,g,b,alpha = 256): if alpha == 0: return ' ' length = len(ascii_char) #gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) gray = int(0.30 * r + 0.59 * g + 0.11 * b) unit = (256.0 + 1)/length return ascii_char[int(gray / unit)] if __name__ == '__main__': im = Image.open(IMG) im = im.resize((WIDTH,HEIGHT),Image.NEAREST) txt = "" for i in range(HEIGHT): for j in range(WIDTH): txt += get_char(*im.getpixel((j,i))) txt += '\n' print(txt) if OUTPUT: with open(OUTPUT,'w') as f: f.write(txt) else: with open("output.txt",'w') as f: f.write(txt)
python3實現圖片轉字符畫
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.