|
| 1 | + |
| 2 | +# Pythonによる画像のアスキーアート化 |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | +## 目次 |
| 8 | +- [ASCIIFYとは](#asciifyとは) |
| 9 | +- [ASCIIFYの仕組み](#asciifyの仕組み) |
| 10 | +- [ASCIIFYの使い方](#asciifyの使い方) |
| 11 | +- [今後の予定](#今後の予定) |
| 12 | +- [応援して](#応援して) |
| 13 | + |
| 14 | +## ASCIIFYとは |
| 15 | + |
| 16 | +ASCIIFYは、画像を受け取ってり元の画像に似た文字列を出力するPythonスクリプトです。 |
| 17 | + |
| 18 | + |
| 19 | +画像を文字によって再現できます。(アスキーアート) |
| 20 | + |
| 21 | +例えば、下のOctocatの画像を引数にすると- |
| 22 | + |
| 23 | + |
| 24 | +以下のような出力が得られます。 - |
| 25 | + |
| 26 | +``` |
| 27 | +.................................................................................................... |
| 28 | +.................................................................................................... |
| 29 | +.....................................####:...............####....................................... |
| 30 | +.....................................#########################...................................... |
| 31 | +.....................................#########################...................................... |
| 32 | +.....................................########################....................................... |
| 33 | +....................................###########################..................................... |
| 34 | +...................................#############################.................................... |
| 35 | +...................................########?+?#######%++########.................................... |
| 36 | +...................................#####:::..::::::::::..::+####.................................... |
| 37 | +...................................####:::....::::::::.?..::####.................................... |
| 38 | +...................................####:::..?.::::::::?.?.::####.................................... |
| 39 | +...................................+###:::+??;::::::::???.::@###.................................... |
| 40 | +....................................###:::.??.::::::::.?..::###..................................... |
| 41 | +.......................................###:::::::?::::::::###....................................... |
| 42 | +........................................:####::::::::::@###......................................... |
| 43 | +..................................###.......############............................................ |
| 44 | +..................................:,##.......@#######@.............................................. |
| 45 | +..................................:.##......###########............................................. |
| 46 | +.....................................#:;....###########............................................. |
| 47 | +......................................#@%#:S#####.#####@............................................ |
| 48 | +.......................................#######.##.######............................................ |
| 49 | +............................................##.##.######............................................ |
| 50 | +............................................##.##.######............................................ |
| 51 | +........................................::::##:##:######::::........................................ |
| 52 | +.....................................::::::###:##:###:###::::::..................................... |
| 53 | +....................................,:::::::++##S::###++:::::::..................................... |
| 54 | +.....................................:::::::++:++:++++++:::::::..................................... |
| 55 | +.......................................:::::++:++:++++++:::::....................................... |
| 56 | +..........................................::++:++:++++++::.......................................... |
| 57 | +..................................................,................................................. |
| 58 | +.................................................................................................... |
| 59 | +``` |
| 60 | +------------------------------------------------------------------------------------------------------- |
| 61 | +## ASCIIFYの仕組み |
| 62 | +ASCIIFY の仕組みは単純明快です。 |
| 63 | +アルゴリズムは以下の通り。 - |
| 64 | +- アスペクト比を保ったまま、画像を一定の大きさに変更 |
| 65 | +- グレースケールに変換(明暗を元に文字に置き換えるため) |
| 66 | +- ピクセルを置き換えるための、特殊文字のリストを作成 |
| 67 | +- ピクセルを明暗に基づいて分類 |
| 68 | +- 全てのピクセルを対応する特殊文字で置き換え |
| 69 | +- ターミナルとファイルに出力 |
| 70 | +- 何かに使う! |
| 71 | + |
| 72 | +------------------------------------------------------------------------------------------------------- |
| 73 | +## ASCIIFYの使い方 |
| 74 | +- Python Imaging Library(PIL) をインストールする。 (なければ `pip install pillow`) |
| 75 | +- このリポジトリをクローンする。 |
| 76 | +- 変換したい画像のパスを引数にしてスクリプトを実行する。 |
| 77 | +- 出力がターミナルに表示され、スクリプトと同じディレクトリ内の 'img.txt' に出力が書き込まれる。 |
| 78 | +- 何かに使う! |
| 79 | + |
| 80 | +------------------------------------------------------------------------------------------------------- |
| 81 | +## 今後の予定 |
| 82 | +- 出力を(プレーンテキストではなく)画像にすることで、カラー出力機能をサポート |
| 83 | + |
| 84 | +------------------------------------------------------------------------------------------------------- |
| 85 | +## 応援して |
| 86 | +このスクリプトが気に入ったらスターをつけてね! :star: |
| 87 | + |
| 88 | +私が他にやっていることも気に入ったら、フォローして!:slightly_smiling_face: |
0 commit comments