【ChatGPT x Python】LINEスタンプ画像サイズに一括変換

技術ノート

こんにちは、ChatGPTでLINEスタンプを制作しているmomoです。

ChatGPTで何とかLINEスタンプ40個を作れたものの、よく見ると、画像サイズがめちゃくちゃ大きいことに気づきました(´;ω;`)

プロンプトでちゃんとサイズ指定したはずなんですが、そのサイズになっていませんでした。

何でかな・・・。

LINEスタンプは、LINEのルールで決められたサイズがあるので、40個全部それに変更しないといけません。。。

さて、どうするか。

そこで今回は、Pythonで一括変換してみることにしました。

この記事を書いた人
momo

フリーランスSEとして、UiPathを中心に業務効率化・自動化を支援しています。
Excel・VBA・GAS・Python・生成AIなども活用し、日々の定型業務を減らす仕組みづくりを行っています。

momoをフォローする
003_midworks_img_300x250

Pythonで画像サイズを変更するには

さて、実は私はPythonはまだ初心者レベルで、実務ではほんの少し触ったことがあるぐらいです。

なので、どう書けばいいのか、これまたChatGPTに聞いて教えてもらうことにしました。

もうほんとに、最近は何でもかんでもChatGPTになっちゃってます(^^♪

こう聞いてみました。

momo
momo

Pythonで、あるフォルダにある全画像を、LINEスタンプ用サイズに変更する方法を教えて

すると、一瞬でコードを教えてくれました。

from PIL import Image
import os

# 入力フォルダと出力フォルダのパスを指定
input_folder = "XXX\XXX"
output_folder = "XXX\XXX"

os.makedirs(output_folder, exist_ok=True)

image_extensions = ['.jpg', '.jpeg', '.png', '.bmp', '.gif']

for filename in os.listdir(input_folder):
    if any(filename.lower().endswith(ext) for ext in image_extensions):
        input_path = os.path.join(input_folder, filename)
        output_path = os.path.join(output_folder, filename)

        with Image.open(input_path) as img:
            resized_img = img.resize((320, 320), Image.LANCZOS)
            resized_img.save(output_path)

print("すべての画像を縦横320pxにリサイズしました。")

素晴らしい。一瞬で完成しました。

一部よくないところは自分で修正

python初心者の視点ですが一応さっと確認してみることに。

すると、

最初のフォルダパスを指定するところが、たぶんダメ。

Windowsだと「¥」がエスケープ文字として誤認識されますね、たぶん。

なので、raw文字列をつけて書き直しました。

# 入力フォルダと出力フォルダのパスを指定
input_folder = r"XXX\XXX"
output_folder = r"XXX\XXX"

パスの先頭にrをつけるだけでOKです。

Pythonなら一瞬でサイズ変更可能

で、これで実行すると、一瞬で全40画像が変更されました。

本当に一瞬で、体感2秒ぐらいです。

いやぁPythonって本当にサクッとコードかけて、すぐ実行できて、めちゃくちゃ便利ですね。

しかも、基本さえ一通り学んでいれば、生成AIに助けてもらって簡単にカスタマイズするだけでいい時代。

便利すぎます(^^♪

この作業、自動化できる?と思ったら

毎日の入力、転記、集計、メール送信、ファイル整理など、繰り返し作業には効率化できるものがあります。

「そもそも自動化できる作業なのか知りたい」

そんな段階でも大丈夫です。

業務内容を確認し、できるだけシンプルで運用しやすい方法を考えます。

技術ノート