見出し画像

大量の大容量画像のimagemagickでの 圧縮をpythonでも書いてみました

はじめに

先日の「大量の大容量画像のimagemagickでの圧縮をpowershellで書いてみました」と同じプログラムをpythonでも書いてみました。
全てcopilotの指示どおりにやってみました。
pythonとpowershellの全ての機能を使うことができ、文法の学習不要です。
学習コストゼロでタイパはベストかと思います。


開発の背景

PowerShell版を既に読んでいれば本項はスキップして下さい。

顧客である外車専門の自動車屋のサイトのcarフォルダには、2010年から14年分の大量の画像が蓄積されています。
去年末頃から車を高精細カメラで撮影するようになり、従来100kb~300kb程度だった写真サイズが2MB~5MB程度になり、弊害が現れてきました。
弊害除去のため、画像をまとめて圧縮するpowershellスクリプトを書いたので紹介します。
注:弊害については本記事の主題からずれるので省略します。

画像フォルダの内容

PowerShell版を既に読んでいれば本項はスキップして下さい。

画像フォルダはcarフォルダ下に車種ごとのフォルダがあり、その下に1台毎の画像フォルダがあります。
このサンプルでは
 C:\carimgフォルダ下にcarフォルダを作成し、コピーを取っておきます。
 C:\carimgフォルダ下にPythonのスクリプトも入れます。

写真は車種フォルダ下に各車の写真が20枚ほど入っています。

画像処理ソフト

PowerShell版を既に読んでいれば本項はスキップして下さい。

画像の縮小は次の理由でImageMagickというアプリで行うことにしました。
・無料で利用できる。
・コマンドラインで利用できる。
・画像品質とサイズを指定して画像を縮小できる。

Pythonでプログラムを書く

Pythonとはインタープリタ型の高水準汎用プログラミング言語です。
AI分野で広く使用されているので、AIを学習する人にとって人気です。
PowerShellでできることは全てできるので、Copilotと組み合わせればPowerShellの書き方の学習コストをほとんどゼロにできます。

Pythonでは次のプログラムを書きます。
1.1MBを超える画像ファイルを探すスクリプトをcopilotで書く。
2.画像ファイル縮小アプリを呼び出すコマンドを追加する。

Copilotへの命令のコツ

最初の命令は必ず成功するよう、超簡単な命令にします。
1. 最初の命令は必ず成功させます。
2. 失敗したら、「新しいトピック」で命令をリセットして1.に戻ります。
 エラーが発生しても回復できますが、回復の指示が煩わしいです。
 エラーの種類はさまざまで、ネットで適切な答えを探すことが困難です。
 それより、最初からやり直した方が速く目的達成できます。
3. プログラムが完成したら条件を加えて徐々に複雑にします。

1回目のトライ
copilotに最初の命令を行います。

下の例題は命令が難しすぎるかもしれません。
難しいと、スクリプトの生成や実行で失敗する可能性があります。
例えば、[ 1MB以上のjpgまたはpngファイル ]を削除すれば簡単になります。

生成されたスクリプト1

今回はプログラムの編集と実行はVisual Studio Codeで行いました。
編集と実行を1つのアプリで行うことができ便利だからです。
他のPython実行環境を使っても構いません。

実行結果1

2回目のトライ
[下の全フォルダ内の・・・再帰的に] の条件を加えて再度命令します。

生成されたスクリプト2
実行結果2

3回目のトライ
最後に下記の画像圧縮命令を加えてCopilotに命令します。
[ 画像を{magick パス1 -resize 2048x1536 -strip -quality 70 パス2}コマンドで圧縮する ]

生成されたスクリプト3
実行結果3

まとめ

CopilotでPythonのスクリプトが簡単に作成できました。
コピペだけで全く手を加えていません。
即ち、PythonやPowerShellを書けなくても使えたということです。
PythonでAI機能も使えるので、今後はもっと高度な機能が実行できます。

Copilotを使うには、最初は簡単な命令でスクリプトの生成を成功させ、徐々に複雑化して、最後に実行するコマンドを追加する方法がよさそうです。
何度も手直しして、目的の機能に近づけてゆきます。

これで高価なアプリを購入する必要がなくなりました。
更に新たな機能の追加が容易だと分かりました。
嬉しいことに、文法の勉強時間が大幅に節約できるとわかりました。
さすがに、何をやっているかは知りたいので機能は勉強しておきましょう。


【マガジン】BITCOIN
【マガジン】IT技術
AIは年寄りに若者の気持ちを教えるツールになれる?
去年前半の生成AIは嘘つきだった、去年後半の生成AIはバカだった、今年の生成AIにあなたは何を期待しますか?
トップの座を脅かすとこのような試練が訪れる(前編)
Blazor.BrowserExtension.Templateでブラウザ拡張機能を作る
PhotoSwiper V5を使っておしゃれな写真集ウェブページを簡単に作成する大量の大容量画像のimagemagickでの圧縮をpowershellで書いてみました
大量の大容量画像のimagemagickでの圧縮をpythonでも書いてみました(本記事)


よろしければサポートお願いします! いただいたサポートは全て『「思い出の場所」の記事とGoogle地図を関連付けるWeb地図アプリ』のLancersでのプログラミングの外注に使わせていただきます。 よろしくお願いします。