ChatGPTに画像リサイズお願いした話と、使ってみた感想

# ChatGPTに画像リサイズお願いした話と、使ってみた感想

画像リサイズを自分で組んだけど、ChatGPTにもお願いしたら感動した話の記事だよ！

## 概要

先日、お友達から「画像を複数サイズに縮小したいんだけど、量が多くてめんどくさい」という話を聞いた。
それならpythonでできるやろ、と思ってコードを組んで出力してあげたら喜んくれて嬉しかった。
ふと、ChatGPTさんにお願いしたらやってくれるのかな？と思ってお願いしたら、いい感じにやってくれてびっくりした。
その時に感じたこととかを最後に書く…みたいな記事です！

## pythonでの画像リサイズ

Discordで雑談しているときに、友達から150x150の画像を72x72、36x36、18x18にリサイズしたい、という話がでた。
もちろんお絵描きツールでリサイズすることは可能なんだけど、量が多いしめんどくさい。
その話を聞いてpythonでできるかもなーと思い、VSCodeを開いて20分くらい？で、調べながら下記のコードを作成。

```python
import cv2
import os

INPUT_DIR_PATH = './input/'
OUTPUT_DIR_PATH = './output/'

def change_size(target_file_name):
    input_file_name = target_file_name.split('.')[0]
    file_type = target_file_name.split('.')[1]

    # 画像の読み込み
    img = cv2.imread(INPUT_DIR_PATH + input_file_name + '.' + file_type, -1)

    # リサイズ
    img_72 = cv2.resize(img, (72, 72))
    img_36 = cv2.resize(img, (36, 36))
    img_18 = cv2.resize(img, (18, 18))

    # 変更後の保存
    cv2.imwrite(OUTPUT_DIR_PATH + input_file_name + '_72.' + file_type, img_72)
    cv2.imwrite(OUTPUT_DIR_PATH + input_file_name + '_36.' + file_type, img_36)
    cv2.imwrite(OUTPUT_DIR_PATH + input_file_name + '_18.' + file_type, img_18)

def get_file_list(target_file_path):
    result = []
    for path_name, dir_names, file_names in os.walk(target_file_path):
        for file_name in file_names:
            print(file_name)
            result.append(file_name)
    return result

def main():
    target_file_list = get_file_list(INPUT_DIR_PATH)
    for file_name in target_file_list:
        change_size(file_name)

main()
```

### 入力

![phalan100.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410015/be8ce5fa-df72-1b01-6b50-59241a2f1e4c.png)

### 出力

![phalan100_72.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410015/976a81cc-60a2-1708-0e5d-a28d1844416b.png)

![phalan100_36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410015/6db22186-7093-07dd-34dc-8197f6ec472a.png)

![phalan100_18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410015/58a1a1a8-0c40-5ba5-5f99-515bd8541d4a.png)

inputディレクトリに突っ込んだ画像を舐めて、outputディレクトリにサイズつけて吐き出すプログラム。
普段ゲームしかしてないオジサンがさくっとプログラム書いてたので、びっくりしてたしすごい喜んでくれた。
嬉しい。どやっ。

## 本題のChatGPT

で、ふと「最近話題のChatGPTさんなら、これくらいやってくれるのかな…？」と思いお願いしてみました。
お願いと返答は下記の通り。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410015/c584e864-c684-3b3a-b6d1-7a3f85985e6c.png)

```python
from PIL import Image

# 150*150の画像を読み込む
im = Image.open('150x150.jpg')

# 画像を72*72にリサイズする
im = im.resize((72, 72))

# 変更された画像を保存する
im.save('72x72.jpg')
```

うおおおおｗ
すげええええｗ

もちろん入力ファイルの名前を変えたり、パスを変えたり、サイズごとにイジる必要はあるけど、ここまで作ってくれるのは嬉しい！

## ChatGPTにコーディングお願いして思ったこと

とりあえず思ったことは「すっげーｗｗｗ」でした。
これは便利ですわぁ…。

そこまで深くサーベイしているわけではないですが、「プログラマも仕事を奪われる！？」みたいな論調が耳に入って来てましたが、使ってみた感想は「まだ数年は大丈夫そうかな？」というのが感想です。

ChatGPTさんに関しては戦う、という感じよりは、むしろ仲良くできそうかな…？という感想です。
今まで通り、やりたいことの大枠とか流れとかは自分で考えて。
今までは各パーツを調べて作っていたところを、第一案をChatGPTさんにお願いして作ってもらう、という流れが良さそうかなーと思いました。
よく話題に上がる「AIの説明責任」についても、流石に自分の書いたコード（ではないけど、自分が書いたことになるコード）がなんでこれでいいのか、の説明なんていつもやってることですしおすし。
「動いているプログラム」であれば、調べるときのモチベーションもだいぶ高いですもんね！

興味が湧いたので、いろんな使い方や紹介してくださっている記事を読み漁ってみたいと思います！！

## 参考にさせていただいた記事

[1.] [OpenCVで画像サイズの変更をしてみた](https://qiita.com/kenfukaya/items/dfa548309c301c7087c4)
画像ファイルの読み込みやリサイズについて参考にさせていただきました！
よみやすい！！

[2.][OpenCVで透過画像を扱う　～スプライトを舞わせる～](https://qiita.com/mo256man/items/f7524dd34718a01fb3df)
背景が白になってしまったため、透過処理を適用するにあたって参考にさせていただきました！
すっごい詳しく書いていただいているので、とても勉強になりました…。
おそらく、画像操作で困ったら、また助けてもらいにお邪魔させていただきます…。

[3.][ChatGPT使い方総まとめ](https://qiita.com/sakasegawa/items/82069c97a1ee011c2d1e)
ChatGPT利用にあたって参考にさせていただきました！
タイトルの通り「使い方」が用途別に記載されていてとってもわかりやすかったです…！
他にもいろんな使い方があるので、記事を参考にさせていただいて遊ぼうと思います…！

## 画像について

記事のInputとOutputに利用させていただいた画像は友達に描いていただいたものなので、無断転載はご遠慮ください。