国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python如何在終端里面顯示一張圖片

2019-11-25 16:36:49
字體:
來源:轉載
供稿:網友

Linux終端里面可謂是奇妙無限,很多優秀的軟件都誕生在終端里面。相較之下,Windows本身的理念和Linux就不一致,所以,你懂得。
下面,我們不妨先思考一下,如何在終端里面顯示一張圖片?

在終端里面顯示,肯定就不像在看圖軟件里那樣的細膩了,我們只是以字符代替某一點的像素,把大致的輪廓顯示出來罷了。

編碼

既然思路很清晰了,下面就來編碼了。

# coding:utf-8import sysreload(sys)sys.setdefaultencoding('utf8')#  __author__ = '郭 璞'#  __date__ = '2016/8/4'#  __Desc__ = 一個可以將圖片轉換成終端字符形式的小工具from time import *import Imageclass ImageTool():  def __init__(self):    print 'Initialization Completed! @',ctime()  def getChars(self,image_pixels,image_width,image_height):    replace_chars = 'ABCDEFGHIJKLMNO '    terminal_chars = ''    for h in xrange(image_height):      for w in xrange(image_width):        point_pixel = image_pixels[w,h]        terminal_chars +=replace_chars[int(sum(point_pixel)/3.0/256.0*16)]      terminal_chars+='/n'    return terminal_chars  def formatImage(self,imagename,image_width,image_height):    img = Image.open(imagename,'rb')    if img.mode != 'RGB':      img = img.convert('RGB')    w,h = img.size    rw = image_width*1.0/w    rh = image_height*1.0/h    r = rw if rw<rh else rh    rw = int(r*w)    rh = int(r*h)    img = img.resize((rw,rh),Image.ANTIALIAS)    return img  def entrance(self,image_path,out_width,out_height):    image = self.formatImage(imagename=image_path,image_width=out_width,image_height=out_height)    image_pixels = image.load()    out_width ,out_height = image.size    terminal_chars = self.getChars(image_pixels=image_pixels,image_width=out_width,image_height=out_height)if __name__ == "__main__":  tool = ImageTool()  imagename = sys.argv[1]  w = int(sys.argv[2])  h = int(sys.argv[3])  tool.entrance(imagename,w,h)

運行

運行程序很簡單,我們按照命令行參數來執行即可。

python Image2Chars.py target_image_name output_width output_height

注意,圖片名稱是包含完整的路徑的圖片名稱

結果
 •素材圖片

素材

•終端顯示效果

素材

文字類型的看起來還湊活,細膩類型的圖片就不太好了。這就是因為我們轉換像素的時候的粒度有點大了的緣故。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 朝阳市| 杭锦后旗| 日喀则市| 绥芬河市| 兰坪| 建水县| 涟源市| 大荔县| 淮阳县| 澎湖县| 宜丰县| 铜川市| 六盘水市| 丁青县| 湘乡市| 清水县| 崇左市| 龙江县| 融水| 湖北省| 喜德县| 剑河县| 西乡县| 卢氏县| 儋州市| 陕西省| 玉树县| 临猗县| 盱眙县| 四子王旗| 阜城县| 兴隆县| 沽源县| 汽车| 淳化县| 穆棱市| 韶山市| 翁牛特旗| 香格里拉县| 广德县| 海口市|