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+=' '

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

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

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

结果

•素材图片

•终端显示效果

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

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

更多python在终端里面显示一张图片相关文章请关注PHP中文网!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

如何在python中显示电脑中的图片-python在终端里面显示一张图片相关推荐

  1. python 脚本将视频转化成图片 | python scripts to convert video to pictures

    python 脚本将视频转化成图片 | python scripts to convert video to pictures python video_to_images.py 运行时,修改输入.输 ...

  2. 如何在python中显示电脑中的图片-python如何实现多个图片显示在屏幕上?

    pygame的三个方法(屏幕上显示需要的图片) yuhu102319582018-12-16 python将多幅图片显示在一张图片上 wugui1111116282018-06-15 iOS 图片显示 ...

  3. 如何在python中显示电脑中的图片-python如何在终端里面显示一张图片

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

  4. win7系统怎么样在计算机里找桌面,如何在64位win7电脑中创建一个“显示桌面”的快捷方式...

    在之前的XP系统中,咱们桌面下方的任务栏窗口中是有一个"显示桌面"的图标的,不管咱们在电脑中开启多少网页,开启多少程序,只需要点击一下这个"显示桌面"的图标,咱 ...

  5. 隐藏计算机文件夹中,怎样显示电脑中已隐藏的文件夹

    打开 我的电脑! 在最上边点击 工具(T) →文件夹选项 在弹出对话框里点查看! 把高级设置里的:不显示隐藏文件和文件夹 改选为:显示所有文件和文件夹 点应用即可!good `如果是VAST 系统的话 ...

  6. python语音控制电脑程序_用Python编程实现语音控制电脑_天津SEO

    天津SEO 电脑面前的你,是否也希望能让电脑听命于你? 当你累的时候,只需说一声"我累了",电脑就会放着优雅的轻音乐来让你放松. 或许你希望你在百忙之中,能让电脑郎读最新的NBA比 ...

  7. linux命令画圣诞树图片,在Linux终端下显示动画的圣诞树

    2018年12月24日是平安夜,这意味着2018年圣诞节要到了,在这个节日到来之际,送你一个有趣而酷炫的Linux Bash技巧,即在终端中显示动画圣诞树,只需要一个脚本并且执行这个脚本就可以了. 在 ...

  8. 如何在python中显示电脑中的图片-如何在python界面显示图片

    代码: #showajpeg(.jpg)imageusingwxPython,newercodingstyle #twodifferentwaystoloadanddisplayaregiven #t ...

  9. vue项目中 img标签加载图片失败,让其显示默认图片

    <img src="123" @error="defImg" alt="" width="150" > 可以 ...

最新文章

  1. Metasploit advanced命令使用技巧
  2. windows下手动配置ipv6地址
  3. 2017-12-09 JavaScript实现ZLOGO子集: 测试用例
  4. 图解Sharepoint2007部署(下):安装sharepoint2007、创建sharepoint2007站点
  5. 1.图像作为函数 | 机器视觉介绍_1
  6. Collections.sort的两种用法
  7. 小心编译器的隐式声明
  8. 图灵奖颁给深度学习三巨头,他们曾是一小撮顽固的“蠢货”
  9. Java静态代理类的特点和示例
  10. Modelsim的安装教程
  11. OSPF配置命令总结
  12. 神经网络学习小记录61——Tensorflow2 搭建常见分类网络平台(VGG16、MobileNet、ResNet50)
  13. 码率/比特率完整介绍
  14. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift全文翻译
  15. 阿里云服务器搭建日记
  16. 元学习:实现通用人工智能的关键!
  17. MWC18丨中兴通讯联合GSMA举办5G峰会 迎接万物智联世界
  18. 使用Python玩转ROS2参数
  19. [ASP.NET网站开发] web程序设计,期末作业,问卷填写与学生选课管理系统(超简单,容易懂!课程考核必过)(使用内置数据库)
  20. 电磁阀的分类及应用范围

热门文章

  1. 开发日记-20190510
  2. android从放弃到精通第11天 勿忘初心
  3. 如何解读「量子计算应对大数据挑战:中国科大首次实现量子机器学习算法」?——是KNN算法吗?...
  4. 公积金联名卡——提取公积金用,用身份证即可办理
  5. PyCharm编辑器关于环境的配置
  6. 按需加载图片(图片懒加载)
  7. 微信开发提示未绑定网页开发者
  8. HDU 6108.小C的倍数问题 (2017百度之星程序设计大赛 - 初赛(A)1001)
  9. python基础-字典
  10. json_encode 中文乱码