python如何在終端里面顯示一張圖片
Linux終端里面可謂是奇妙無限,很多優(yōu)秀的軟件都誕生在終端里面。相較之下,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)
運行
運行程序很簡單,我們按照命令行參數來執(zhí)行即可。
python Image2Chars.py target_image_name output_width output_height
注意,圖片名稱是包含完整的路徑的圖片名稱
結果
•素材圖片

•終端顯示效果

文字類型的看起來還湊活,細膩類型的圖片就不太好了。這就是因為我們轉換像素的時候的粒度有點大了的緣故。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- Pycharm中安裝wordcloud等庫失敗問題及終端通過pip安裝的Python庫如何添加到Pycharm解釋器中(推薦)
- Python在終端通過pip安裝好包以后在Pycharm中依然無法使用的問題(三種解決方案)
- Python終端輸出彩色字符方法詳解
- python paramiko遠程服務器終端操作過程解析
- 使用python模擬命令行終端的示例
- 在PyCharm的 Terminal(終端)切換Python版本的方法
- python隱藏終端執(zhí)行cmd命令的方法
- Python檢查ping終端的方法
- 淺談終端直接執(zhí)行py文件,不需要python命令
- 在Linux命令行終端中使用python的簡單方法(推薦)
- 用Python編寫一個基于終端的實現翻譯的腳本
- 在終端啟動Python時報錯的解決方案
相關文章
Python中列表索引 A[ : 2 ]與A[ : ,&nb
這篇文章主要介紹了Python中列表索引 A[ : 2 ]與A[ : , 2]的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
Python實現同時兼容老版和新版Socket協(xié)議的一個簡單WebSocket服務器
這篇文章主要介紹了Python實現同時兼容老版和新版Socket協(xié)議的一個簡單WebSocket服務器,需要的朋友可以參考下2014-06-06
使用Python?Cupy模塊加速大規(guī)模數值計算實例深究
Cupy是一個基于NumPy的庫,專門設計用于在GPU上進行高性能計算,它提供了與NumPy相似的API,因此用戶可以很容易地將現有的NumPy代碼遷移到Cupy上,從而充分利用GPU的并行計算能力2023-12-12

