皆の衆、聞いてくれ。拙者、とある処理のために「画像を一定間隔で縮小したやつ」を大量に用意せねばならん状況に陥ったんですな。
対象画像が複数枚……。これを手作業でポチポチ縮小して保存とか、正気の沙汰ではない。そんな苦行、拙者の尊い時間がもったいなすぎる(憤怒)。
「Pythonで自動化すればええやん」とは思ったものの、ぶっちゃけコードを書くのも面倒くさい。そこで、文明の利器「Gemini」に丸投げしてみた結果がこちらになりますぞwww
※この文章もGeminiにオタクっぽく変換してもらいました。AIはすごいですね。
### 召喚したPrompt(詠唱)
拙者がGeminiたんに投げた「聖なる言葉(プロンプト)」がこれ。これを入力するだけでコードが出てくるとか、魔法使いにでもなった気分ですぞデュフフwww
以下処理をするPythonのスクリプトを作って。
・コマンドラインから与えられた画像ファイルを縮小する
・縮小処理は"100% - 縮小値"から始め、縮小値を加算しながら指定回数繰り返し、複数の縮小画像を作成する
・縮小値と繰り返し回数はコマンドラインから指定する
・出力ファイルは入力画像のパスに"out"ディレクトリを作成してその中に出力する
・出力ファイル名は入力画像名に"_"+縮小率を追加した名称にして
### 錬成されたコード
するとどうだ。Geminiたんは嫌な顔一つせず、数秒でこのコードを出力してきたのですぞ。
import os
import argparse
from pathlib import Path
from PIL import Image
def resize_images(input_path, step, iterations):
# 入力ファイルの確認
img_path = Path(input_path)
if not img_path.exists():
print(f"Error: ファイルが見つかりません: {input_path}")
return
# 出力先ディレクトリ(out)の作成
output_dir = img_path.parent / "out"
output_dir.mkdir(exist_ok=True)
try:
with Image.open(img_path) as img:
original_format = img.format
for i in range(1, iterations + 1):
# 縮小率の計算 (例: step=10, i=1 なら 90%)
reduction_rate = i * step
scale_percent = 100 - reduction_rate
if scale_percent <= 0:
print(f"警告: 縮小率が0%以下になるため、{i}回目以降の処理をスキップします。")
break
# 新しいサイズを計算
new_width = int(img.width * scale_percent / 100)
new_height = int(img.height * scale_percent / 100)
# リサイズ実行 (LANCZOSは高品質なリサイズフィルタ)
resized_img = img.resize((new_width, new_height), Image.Resampling.LANCZOS)
# ファイル名の生成 (例: image_90.jpg)
new_filename = f"{img_path.stem}_{scale_percent}{img_path.suffix}"
save_path = output_dir / new_filename
# 保存
resized_img.save(save_path, format=original_format)
print(f"保存完了: {save_path} (サイズ: {scale_percent}%)")
except Exception as e:
print(f"エラーが発生しました: {e}")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="画像を段階的に縮小コピーします。")
parser.add_argument("file", help="入力画像ファイルのパス")
parser.add_argument("step", type=int, help="縮小値 (例: 10 なら 10%ずつ減らしていく)")
parser.add_argument("count", type=int, help="繰り返し回数")
args = parser.parse_args()
resize_images(args.file, args.step, args.count)
さらに見てくれ、この手厚すぎるサポートを。必要なライブラリの叩き方から使い方まで、懇切丁寧に教えてくれたんですな。これはもう、実質Geminiたんは拙者の専属エンジニアと言っても過言ではない(過言)。
### いざ、実行(デプロイ)!
「動けば官軍」の精神で、コマンドプロンプトにブチ込んでみた結果がこれですぞ!
キマッタアアアアアアア!!!!!wwwww
エラーも吐かずに爆速で処理が完了しましたぞ!
### 出力結果(ご褒美)
見てくれ、この美しくリサイズされた画像たちの雄姿を。完璧、まさにパーフェクトだGemini……。
総括
いやはや、AIの進化は止まりませんな。「やりたいことはあるけど、コード書くのがだるい」……そんな現代人の怠慢(正義)を、Geminiたんは完璧に肯定してくれる。
手作業で消耗している諸兄ら、悪いことは言わん。今すぐAIに丸投げして、浮いた時間で推しの動画でも見るべきですぞ!デュフフwww
0 件のコメント:
コメントを投稿