画像をASCIIアートに変換！10行で作る魔法のPythonコード

こんにちは、みなさん！今日は、たった10行のPythonコードで画像をASCIIアートに変換する魔法をご紹介します。タイトルに興味もたれたかたは、このコードで遊んでみるのもいいでしょう・・！😎

## はじめに

「プログラミングって難しそう...」と思っている方、お待たせしました！今回ご紹介するコードは、初心者の方でも簡単に理解できて、しかも超クールな結果が得られます。

## コード

まずは、お待ちかねのコードをご覧ください。

```python
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アートに変換する魔法をマスターしました。このシンプルなコードを基に、さらなる創造性を発揮してください。プログラミングって、意外と簡単で楽しいでしょう？

https://blog.qiita.com/qiita-visual-identity/

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

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2648069/b1005005-ea3d-0f53-db0c-6bca17334f37.png)


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

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

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

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

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

Happy Coding! 🚀✨

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