• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python在终端里面显示一张图片

python 搞代码 4年前 (2022-01-09) 42次浏览 已收录 0个评论

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! @&#3<em>本文来源[email protected]搞@^&代*@码2网</em>9;,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

注意,图片名称是包含完整的路径的图片名称

结果
•素材图片

•终端显示效果

文字类型的看起来还凑活,细腻类型的图片就不太好了。这就是因为我们转换像素的时候的粒度有点大了的缘故。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持搞代码

更多python在终端里面显示一张图片相关文章请关注搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python在终端里面显示一张图片

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址