こんにちは、みなさん!今日は、たった10行のPythonコードで画像をASCIIアートに変換する魔法をご紹介します。タイトルに興味もたれたかたは、このコードで遊んでみるのもいいでしょう・・!😎
はじめに
「プログラミングって難しそう...」と思っている方、お待たせしました!今回ご紹介するコードは、初心者の方でも簡単に理解できて、しかも超クールな結果が得られます。
コード
まずは、お待ちかねのコードをご覧ください。
from PIL import Image
def image_to_ascii(image_path, width=50, chars=' .:-=+*#%@'):
img = Image.open(image_path).convert('L')
img = img.resize((width, int(img.height * width / img.width / 2)))
pixels = img.getdata()
return ''.join(chars[min(int(p / 25), len(chars) - 1)] for p in pixels)
# 使用例
image_path = 'path/to/your/image.jpg'
print('\n'.join(image_to_ascii(image_path)[i:i+50] for i in range(0, 2500, 50)))
コードの解説
-
PIL
(Python Imaging Library)を使って画像を開きます。 - 画像をグレースケールに変換し、指定した幅にリサイズします。
- 各ピクセルの明るさに応じて、ASCII文字に変換します。
- 結果を50文字ごとに改行して出力します。
使い方
-
pip install pillow
で必要なライブラリをインストールします。 -
image_path
を変換したい画像のパスに変更します。 - スクリプトを実行すると、ASCIIアートがコンソールに表示されます。
カスタマイズのヒント
-
width
を変更して出力サイズを調整できます。 -
chars
を変更して、使用する文字を好みのものに変更できます。
面白い使い方アイデア
-
プロフィール画像のASCII化: SNSのプロフィール欄にASCIIアートを貼り付けて、ユニークな自己表現を!
-
秘密のメッセージ: 画像に隠されたメッセージをASCIIアートに変換。まるで暗号のよう!
-
ターミナルアート: お気に入りのキャラクターをASCII化して、ターミナルの起動時に表示させよう。
-
アスキーアニメーション: 連続した画像をASCII変換して、コマ送りアニメーションを作成!
-
コードゴルフ: このコードをさらに短く、あるいは一行で書けるかチャレンジしてみよう!
まとめ
たった10行のコードで、画像をASCIIアートに変換する魔法をマスターしました。このシンプルなコードを基に、さらなる創造性を発揮してください。プログラミングって、意外と簡単で楽しいでしょう?
このサイトからアイコンの画像を取得して変換してみました。
最後に、このコードを使って変換したQiitaのアイコンをお見せします。
@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@%#**++++++++++++++*#%@@@@@@@@@@@@@@@
@@@@@@@@@@@%*+++++++++++++++++++++++*#%@@@@@@@@@@@
@@@@@@@@@#+++++++++++++++++++++++++++++*%@@@@@@@@@
@@@@@@@#++++++++++++**#####**++*%@#++++++*%@@@@@@@
@@@@@%*++++***++*#%@@@@@@@@@@@@@@@@++++++++*@@@@@@
@@@@%++++++%@@@@@@@%**+++++**%@@@@@+++++++++*@@@@@
@@@%+++++++*@@@@@#+++++++++++++#@@@%*++++++++*@@@@
@@@++++++++*@@@%++++++++++++++++*%%@@#++++++++#@@@
@@#+++++++*@@%%+++++++++++++++++++%@@@*++++++++@@@
@@*+++++++%@@%#+++++++++++++++++++%@@@@++++++++#@@
@@*++++++*@@@@%++++++++++++++++++*@@@@@#+++++++#@@
@@*++++++*@@@@@#++++++++++++++++*@@@@@@%+++++++#@@
@@*++++++*@@@@@@@#**++++++***#%@@@@@@@@%+++++++%@@
@@%+++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*++++++*@@@
@@@#++++++*@@@@@@@@@@@@@@@@@@@@@@@@@@@@+++++++%@@@
@@@@*++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@%*****#@@@@
@@@@@#++++++*%@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@
@@@@@@%+++++++*#%@@@@@@@@@@@@@@@%#*+*#@@@@@@@@@@@@
@@@@@@@@#+++++++++**########***++++++++*%@@@@@@@@@
@@@@@@@@@@%*++++++++++++++++++++++++++*%@@@@@@@@@@
@@@@@@@@@@@@@%**++++++++++++++++++*#%@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@%##*********##%%@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
わぁ!Qiitaのアイコンがこんなにかわいくアスキーアートになっちゃいました!(*≧ω≦)
緑色の背景に白抜きの「Q」の文字が、なんとASCII文字で表現されています。
細かい部分まで再現されていて、本当にびっくり!プログラミングの力って素晴らしいですね。
みなさんも、ぜひお気に入りの画像でASCIIアートを作ってみてください。かわいいペットの写真やお気に入りのアニメキャラクター、はたまた自分の顔写真(!?)なんかもおもしろいかもしれません。面白い結果が得られたら、ぜひコメント欄で共有してくださいね!
プログラミングの世界は、こんなに楽しくてクリエイティブなんです。さぁ、あなたも一緒にコードの魔法を楽しみましょう!(◠‿◠)✌
Happy Coding! 🚀✨
ヒゲの部分は再現できなかったが・・。日々何気なく見てるものだったが、ブランドイメージって大事なんだな・・。アイコンで親しみ度がかわっていったりする。