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

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

Posted in 未分类

发表评论