0
1

こんにちは、みなさん!今日は、たった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)))

コードの解説

  1. PIL(Python Imaging Library)を使って画像を開きます。
  2. 画像をグレースケールに変換し、指定した幅にリサイズします。
  3. 各ピクセルの明るさに応じて、ASCII文字に変換します。
  4. 結果を50文字ごとに改行して出力します。

使い方

  1. pip install pillowで必要なライブラリをインストールします。
  2. image_pathを変換したい画像のパスに変更します。
  3. スクリプトを実行すると、ASCIIアートがコンソールに表示されます。

カスタマイズのヒント

  • widthを変更して出力サイズを調整できます。
  • charsを変更して、使用する文字を好みのものに変更できます。

面白い使い方アイデア

  1. プロフィール画像のASCII化: SNSのプロフィール欄にASCIIアートを貼り付けて、ユニークな自己表現を!

  2. 秘密のメッセージ: 画像に隠されたメッセージをASCIIアートに変換。まるで暗号のよう!

  3. ターミナルアート: お気に入りのキャラクターをASCII化して、ターミナルの起動時に表示させよう。

  4. アスキーアニメーション: 連続した画像をASCII変換して、コマ送りアニメーションを作成!

  5. コードゴルフ: このコードをさらに短く、あるいは一行で書けるかチャレンジしてみよう!

まとめ

たった10行のコードで、画像をASCIIアートに変換する魔法をマスターしました。このシンプルなコードを基に、さらなる創造性を発揮してください。プログラミングって、意外と簡単で楽しいでしょう?

このサイトからアイコンの画像を取得して変換してみました。
最後に、このコードを使って変換したQiitaのアイコンをお見せします。

image.png

@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@%#**++++++++++++++*#%@@@@@@@@@@@@@@@
@@@@@@@@@@@%*+++++++++++++++++++++++*#%@@@@@@@@@@@
@@@@@@@@@#+++++++++++++++++++++++++++++*%@@@@@@@@@
@@@@@@@#++++++++++++**#####**++*%@#++++++*%@@@@@@@
@@@@@%*++++***++*#%@@@@@@@@@@@@@@@@++++++++*@@@@@@
@@@@%++++++%@@@@@@@%**+++++**%@@@@@+++++++++*@@@@@
@@@%+++++++*@@@@@#+++++++++++++#@@@%*++++++++*@@@@
@@@++++++++*@@@%++++++++++++++++*%%@@#++++++++#@@@
@@#+++++++*@@%%+++++++++++++++++++%@@@*++++++++@@@
@@*+++++++%@@%#+++++++++++++++++++%@@@@++++++++#@@
@@*++++++*@@@@%++++++++++++++++++*@@@@@#+++++++#@@
@@*++++++*@@@@@#++++++++++++++++*@@@@@@%+++++++#@@
@@*++++++*@@@@@@@#**++++++***#%@@@@@@@@%+++++++%@@
@@%+++++++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*++++++*@@@
@@@#++++++*@@@@@@@@@@@@@@@@@@@@@@@@@@@@+++++++%@@@
@@@@*++++++#@@@@@@@@@@@@@@@@@@@@@@@@@@@%*****#@@@@
@@@@@#++++++*%@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@
@@@@@@%+++++++*#%@@@@@@@@@@@@@@@%#*+*#@@@@@@@@@@@@
@@@@@@@@#+++++++++**########***++++++++*%@@@@@@@@@
@@@@@@@@@@%*++++++++++++++++++++++++++*%@@@@@@@@@@
@@@@@@@@@@@@@%**++++++++++++++++++*#%@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@%##*********##%%@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

わぁ!Qiitaのアイコンがこんなにかわいくアスキーアートになっちゃいました!(*≧ω≦)

緑色の背景に白抜きの「Q」の文字が、なんとASCII文字で表現されています。
細かい部分まで再現されていて、本当にびっくり!プログラミングの力って素晴らしいですね。

みなさんも、ぜひお気に入りの画像でASCIIアートを作ってみてください。かわいいペットの写真やお気に入りのアニメキャラクター、はたまた自分の顔写真(!?)なんかもおもしろいかもしれません。面白い結果が得られたら、ぜひコメント欄で共有してくださいね!

プログラミングの世界は、こんなに楽しくてクリエイティブなんです。さぁ、あなたも一緒にコードの魔法を楽しみましょう!(◠‿◠)✌

Happy Coding! 🚀✨

ヒゲの部分は再現できなかったが・・。日々何気なく見てるものだったが、ブランドイメージって大事なんだな・・。アイコンで親しみ度がかわっていったりする。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1