• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > python如何在终端里面显示一张图片

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

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python终端,python终端窗口,终端运行python,python显示图片,python2.7显示中文等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Linux终端里面可谓是奇妙无限,很多优秀的软件都诞生在终端里面。相较之下,Windows本身的理念和Linux就不一致,所以,你懂得。
下面,我们不妨先思考一下,如何在终端里面显示一张图片?

在终端里面显示,肯定就不像在看图软件里那样的细腻了,我们只是以字符代替某一点的像素,把大致的轮廓显示出来罢了。

编码

既然思路很清晰了,下面就来编码了。

# coding:utf-8
import sys

reload(sys)
sys.setdefaultencoding('utf8')
#  __author__ = '郭 璞'
#  __date__ = '2016/8/4'
#  __Desc__ = 一个可以将图片转换成终端字符形式的小工具

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)

</div>

运行

运行程序很简单,我们按照命令行参数来执行即可。

python Image2Chars.py target_image_name output_width output_height

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

结果
 •素材图片

素材

•终端显示效果

素材

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

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

</div>

您可能想查找下面的文章:

  • python如何在终端里面显示一张图片
  • python如何在终端里面显示一张图片
  • 用Python编写一个基于终端的实现翻译的脚本
  • 用Python编写一个基于终端的实现翻译的脚本

相关文章

  • python批量提交沙箱问题实例
  • python缩进区别分析
  • python杀死一个线程的方法
  • 使用python将mdb数据库文件导入postgresql数据库示例
  • python基于multiprocessing的多进程创建方法
  • django模型中的字段和model名显示为中文小技巧分享
  • 修改Python的pyxmpp2中的主循环使其提高性能
  • 使用PYTHON接收多播数据的代码
  • 分享15个最受欢迎的Python开源框架
  • Python命名空间详解

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 初步解析Python中的yield函数的用法
    • Python中的map、reduce和filter浅析
    • 解决Python传递中文参数的问题
    • python同时给两个收件人发送邮件的方法
    • 在Windows8上的搭建Python和Django环境
    • Python使用函数默认值实现函数静态变量的方法
    • 横向对比分析Python解析XML的四种方式
    • Python中的推导式使用详解
    • python模拟登录百度贴吧(百度贴吧登录)实例
    • 介绍Python的Django框架中的静态资源管理器django-pipeline

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有