コマンドラインで画像を表示させる(Python&乃木坂46)
CUI環境だと画像が表示できない。
CUI環境で突然画像が見たくなった時に困ってしまう。
この前UbuntuのXWindowが突然クラッシュして泣きそうになりました。(てか泣きました)
あのときCUIで乃木坂の画像を見られたら、 元気がでて泣かなかったかもしれない…!
そんなこんなありまして
コマンドラインで画像が表示できないかってことでPythonでちょっと組んでみました。
参考 : Python/PILによる画像のグレイスケール化とアスキーアート化
こんな感じ
参考画像
ほーう。。。
かわいい。
サイズも調整できます。
なんか楽しい!
逆からやっていったら、なんかクイズっぽい!
でも使いドコロがわかんなくなってきた…。
コードはこんな感じ
# -*- coding: utf-8 -*- """ created by terasann """ from PIL import Image from PIL import ImageOps from PIL import ImageFilter import numpy as np import sys def ascii(pmatrix, size): line = [] for y in xrange(size): sentence = "" for x in xrange(size*2): gray = pmatrix.getpixel((x,y)) if gray > 250: character = "@" elif gray > 230: character = "$" elif gray > 210: character = "&" elif gray > 190: character = "¥" elif gray > 170: character = "*" elif gray > 150: character = "+" elif gray > 130: character = "/" elif gray > 110: character = "|" elif gray > 90: character = ":" elif gray > 70: character = "." elif gray > 50: character = " " sentence = sentence + character print sentence line.append(character) if __name__ == '__main__': try: param = sys.argv filename = 'logo.gif' size = 60 if param[1] != None: filename = param[1] src = Image.open(filename) if param[2] != None: size = int(param[2]) image = src.resize((size*2, size)) output_image = ImageOps.grayscale(image) ascii(output_image, size) except: print "Error!"
なんと簡単!
例えばこのコードをbashrcに入れてみると…
こんな感じ
おお!なんかすごい! どんな画像も入れられますし、好きな記号に置き換えられます。
ちょっと思いついたので作ってみました。
今日も良いPythonライフを!