Skip to content

Latest commit

 

History

History
88 lines (74 loc) · 5.59 KB

README_ja.md

File metadata and controls

88 lines (74 loc) · 5.59 KB

Pythonによる画像のアスキーアート化

目次

ASCIIFYとは

ASCIIFYは、画像を受け取ってり元の画像に似た文字列を出力するPythonスクリプトです。

画像を文字によって再現できます。(アスキーアート)

例えば、下のOctocatの画像を引数にすると-

以下のような出力が得られます。 -

....................................................................................................
....................................................................................................
.....................................####:...............####.......................................
.....................................#########################......................................
.....................................#########################......................................
.....................................########################.......................................
....................................###########################.....................................
...................................#############################....................................
...................................########?+?#######%++########....................................
...................................#####:::..::::::::::..::+####....................................
...................................####:::....::::::::.?..::####....................................
...................................####:::..?.::::::::?.?.::####....................................
...................................+###:::+??;::::::::???.::@###....................................
....................................###:::.??.::::::::.?..::###.....................................
.......................................###:::::::?::::::::###.......................................
........................................:####::::::::::@###.........................................
..................................###.......############............................................
..................................:,##.......@#######@..............................................
..................................:.##......###########.............................................
.....................................#:;....###########.............................................
......................................#@%#:S#####.#####@............................................
.......................................#######.##.######............................................
............................................##.##.######............................................
............................................##.##.######............................................
........................................::::##:##:######::::........................................
.....................................::::::###:##:###:###::::::.....................................
....................................,:::::::++##S::###++:::::::.....................................
.....................................:::::::++:++:++++++:::::::.....................................
.......................................:::::++:++:++++++:::::.......................................
..........................................::++:++:++++++::..........................................
..................................................,.................................................
....................................................................................................

ASCIIFYの仕組み

ASCIIFY の仕組みは単純明快です。 アルゴリズムは以下の通り。 -

  • アスペクト比を保ったまま、画像を一定の大きさに変更
  • グレースケールに変換(明暗を元に文字に置き換えるため)
  • ピクセルを置き換えるための、特殊文字のリストを作成
  • ピクセルを明暗に基づいて分類
  • 全てのピクセルを対応する特殊文字で置き換え
  • ターミナルとファイルに出力
  • 何かに使う!

ASCIIFYの使い方

  • Python Imaging Library(PIL) をインストールする。 (なければ pip install pillow)
  • このリポジトリをクローンする。
  • 変換したい画像のパスを引数にしてスクリプトを実行する。
  • 出力がターミナルに表示され、スクリプトと同じディレクトリ内の 'img.txt' に出力が書き込まれる。
  • 何かに使う!

今後の予定

  • 出力を(プレーンテキストではなく)画像にすることで、カラー出力機能をサポート

応援して

このスクリプトが気に入ったらスターをつけてね! ⭐

私が他にやっていることも気に入ったら、フォローして!:slightly_smiling_face: