最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2016年08月17日 16:27:04   作者:Marksinoberg  
這篇文章主要為大家詳細介紹了python如何在終端里面顯示一張圖片的方法,感興趣的小伙伴們可以參考一下

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

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

編碼

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

# coding:utf-8
import sys

reload(sys)
sys.setdefaultencoding('utf8')
#  __author__ = '郭 璞'
#  __date__ = '2016/8/4'
#  __Desc__ = 一個可以將圖片轉(zhuǎn)換成終端字符形式的小工具

from time import *
import Image
class 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)

運行

運行程序很簡單,我們按照命令行參數(shù)來執(zhí)行即可。

python Image2Chars.py target_image_name output_width output_height

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

結(jié)果
 •素材圖片

素材

•終端顯示效果

素材

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

金湖县| 皮山县| 大渡口区| 临城县| 丹阳市| 涡阳县| 应城市| 宜宾县| 化州市| 库伦旗| 金平| 体育| 大冶市| 荣成市| 峨眉山市| 龙陵县| 虹口区| 屏山县| 南江县| 湖北省| 工布江达县| 利川市| 建湖县| 元谋县| 平舆县| 上饶市| 平武县| 马尔康县| 黑山县| 萨迦县| 金山区| 安远县| 顺昌县| 漳浦县| 铜山县| 芜湖市| 永康市| 青浦区| 甘肃省| 罗田县| 印江|