返回顶部
首页 > 资讯 > 后端开发 > Python >python如何在终端里面显示一张图片
  • 442
分享到

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

终端如何在图片 2022-06-04 18:06:33 442人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

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

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)

运行

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

python Image2Chars.py target_image_name output_width output_height

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

结果
•素材图片

查看图片

•终端显示效果

查看图片

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

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

--结束END--

本文标题: python如何在终端里面显示一张图片

本文链接: https://lsjlt.com/news/14341.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python如何在终端里面显示一张图片
    Linux终端里面可谓是奇妙无限,很多优秀的软件都诞生在终端里面。相较之下,Windows本身的理念和Linux就不一致,所以,你懂得。 下面,我们不妨先思考一下,如何在终端里面显示一张图片? 在终端里面...
    99+
    2022-06-04
    终端 如何在 图片
  • 怎么在Linux终端中显示图片
    这篇文章将为大家详细讲解有关怎么在Linux终端中显示图片,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux 上有许多 GUI 图片浏览器。但我尚未听说或使用过任何在终端中显示图片的应用程序。幸运的...
    99+
    2023-06-16
  • Python如何实现多张图片合成一张马赛克图片
    这篇文章将为大家详细讲解有关Python如何实现多张图片合成一张马赛克图片,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。图片素材4K高清原图开发环境Python 3.6Pycharm实现代码先导入所需模块...
    99+
    2023-06-22
  • R语言如何在一张图上显示多条线
    这篇文章主要介绍了R语言如何在一张图上显示多条线,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是R语言R语言是用于统计分析、绘图的语言和操作环境,属于GNU系统的一个自由...
    99+
    2023-06-14
  • PyQt5如何实现多张图片显示并滚动
    这篇文章主要为大家展示了“PyQt5如何实现多张图片显示并滚动”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PyQt5如何实现多张图片显示并滚动”这篇文章吧。单页面显示多张图片习惯性的用Grid...
    99+
    2023-06-15
  • css如何把一张图片放在底部
    这篇文章主要讲解了“css如何把一张图片放在底部”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css如何把一张图片放在底部”吧! ...
    99+
    2024-04-02
  • css如何实现多张图片横向居中显示
    这篇文章将为大家详细讲解有关css如何实现多张图片横向居中显示,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码实现HTML部分   <div class=&...
    99+
    2023-06-08
  • 在Linux终端中如何展示幻灯片
    这篇文章给大家分享的是有关在Linux终端中如何展示幻灯片的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Present:Linux 终端中进行演示在终端中可以做很多有趣好玩的事情。制作和展示幻灯片只是其中之一。这...
    99+
    2023-06-15
  • 如何在Linux终端中展示幻灯片
    这篇文章给大家分享的是有关如何在Linux终端中展示幻灯片的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。演示文稿往往是枯燥的。这就是为什么有些人会添加动画或漫画/meme 来增加一些幽默和风格来打破单调。如果你需...
    99+
    2023-06-28
  • ps如何把两张图片融合在一起
    本篇内容主要讲解“ps如何把两张图片融合在一起”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ps如何把两张图片融合在一起”吧!首先打开一张图片。 之后在将另一张图片直接拉进去,再通过图片边上的点...
    99+
    2023-07-02
  • 详解php如何合并身份证正反面图片为一张图片
    目录正文演示了如何合并两张图片使用PNG格式保存正文 要将身份证的正反面图片合并为一张图片,你可以使用PHP的GD库来完成。 演示了如何合并两张图片 下面是一个示例代码,演示了如何合...
    99+
    2023-05-19
    php 合并正反面图片 php 合并身份证正反面
  • c++结合opencv如何实现读取多张图片并显示
    目录方法一方法二方法三方法一 主要函数 void cv::glob(String pattern,std::vector<string>&result,bool ...
    99+
    2022-11-13
    c++结合opencv opencv读取多张图片 opencv图片显示
  • vue如何让一行显示两个图片
    这篇文章主要介绍“vue如何让一行显示两个图片”,在日常操作中,相信很多人在vue如何让一行显示两个图片问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue如何让一行显示两个图片”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-06
  • 如何使用CPUFetch在Linux终端中显示CPU细节
    这篇文章主要介绍“如何使用CPUFetch在Linux终端中显示CPU细节”,在日常操作中,相信很多人在如何使用CPUFetch在Linux终端中显示CPU细节问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如...
    99+
    2023-06-15
  • 如何利用CSS3将两个图片叠加在一起显示
    本篇内容介绍了“如何利用CSS3将两个图片叠加在一起显示”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一...
    99+
    2024-04-02
  • 实例介绍如何在Golang中显示图片
    随着计算机和互联网的飞速发展,绝大部分应用软件都需要涉及到图片这种媒介来完成某些功能。在编程语言中,提供了各种API和函数来处理图片。Golang是一种新的编程语言,它被设计用于开发高效,可靠且简单的软件。尽管它是一种相对较新的语言,但在越...
    99+
    2023-05-14
  • Android从网络中获得一张图片并显示在屏幕上的实例详解
    Android从网络中获得一张图片并显示在屏幕上的实例详解看下实现效果图:androidmanifest.xml的内容<?xml version="1.0" encoding="utf-8"?> <mani...
    99+
    2023-05-30
    android 网络图片 roi
  • 后端如何返回一个(图片)文件流,并在前端vue展示。
    后端部分可分为三步: 1,获取文件参数(非必须,根据自己情况添加) 2,获取文件 3,以流形式返回 具体代码如下: @GetMapping("/getFileByUrl")@ApiOperationS...
    99+
    2023-09-14
    前端 vue.js java
  • 利用Java如何在图片中显示实时时间
    今天就跟大家聊聊有关利用Java如何在图片中显示实时时间,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。      &nbs...
    99+
    2023-05-31
    java ava
  • layui中layer前端组件如何实现图片显示功能
    这篇文章主要为大家展示了“layui中layer前端组件如何实现图片显示功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“layui中layer前端组件如何实现...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作