Terasannのチラ裏

「それはTeraさんに聞け」を目指すブログ

コマンドラインで画像を表示させる(Python&乃木坂46)

CUI環境だと画像が表示できない。

CUI環境で突然画像が見たくなった時に困ってしまう。

この前UbuntuのXWindowが突然クラッシュして泣きそうになりました。(てか泣きました)

あのときCUIで乃木坂の画像を見られたら、 元気がでて泣かなかったかもしれない…!

そんなこんなありまして

コマンドラインで画像が表示できないかってことでPythonでちょっと組んでみました。

参考 : Python/PILによる画像のグレイスケール化とアスキーアート化

こんな感じ

f:id:kch-bone:20150221030410p:plain

参考画像

maimai

ほーう。。。

かわいい。

サイズも調整できます。

f:id:kch-bone:20150221030437p:plain

f:id:kch-bone:20150221030454p:plain

なんか楽しい!

逆からやっていったら、なんかクイズっぽい!

でも使いドコロがわかんなくなってきた…。

コードはこんな感じ

# -*- 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に入れてみると…

こんな感じ

f:id:kch-bone:20150221030522p:plain

おお!なんかすごい! どんな画像も入れられますし、好きな記号に置き換えられます。

ちょっと思いついたので作ってみました。

今日も良いPythonライフを!