メインコンテンツへスキップ
見出し画像

大量の大容量画像の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でも書いてみました(本記事)


     
     
    1970よりIT技術者として就職、仕事でITとバイオと中国の激変を経験。現在AIには嵌ってる。IT企業に再就職するも最前線を体験したく現役に留まっている。去年が喜寿。経験したIT技術、バイオ、中国と老後についてブログを書きます。ビットコインに詳しい。

    あなたへのおすすめ