WordPressのブログやホームページに写真をアップするときには、縮小しておきたいもの。
そのときにPythonを使うと便利です。
※ブログ執筆中 by Nikon Z9+24-120mmF4
WordPressへの写真アップ時の注意点
WordPressは、そのデータ(テキスト、写真など)を借りているサーバーに保存するというしくみです。
テキストはともかく写真はそれなりの大きさのデータ。
できる限りそのサイズを小さくしたいものです。
スマホでも写真のサイズは大きくなり、カメラならなおさら大きくなります。
とはいえ、小さくしすぎると、写真が粗くなり、せっかく撮った写真が見づらくなるものです。
そして、WordPress特有の写真処理についても注意しましょう。
写真には、サイズがあり、たとえば、Googleフォトでiを押す、WindowsのエクスプローラーやMacのFinderで、確認できます。
これだと、8256×5504というサイズです。
これをWordPress へそのままアップすると、アップはできるのですが、こうなってしまいます。
元のファイルを圧縮して、2560の幅にし、scaledという名前がついているのです。
元のファイルもこのように残っています。
(WordPress のサーバー内のファイルです)
無駄に容量を使ってしまうということです。
画像を縮小してくれて楽なのですが、この縮小により、画質が落ちてしまいます。
写真によって目立つことも。
ファイルのサイズについては、サーバーの容量はそれなりにあるのでいいとして、画質が落ちるのは避けたいもの。
WordPressのテーマにもよりますが。
WordPressのルールは、「幅が2560pxだったら縮小する」というものです。
それならば、画像をあらかじめ2560pに縮小してアップしておけば、こういったことは起きません。
このように2560にしておきたいものです。
Pythonで画像を縮小
画像を幅2560px以下に縮小してアップすれば、このようにscaledはできません。
サーバー内にもこのようなファイルだけが保存されます。
縮小前は、17MBでした。
Pythonだと、たとえばこのような流れで写真ファイルを準備できます。
・写真をGoogleフォトからダウンロード(Shift+D)
・Pythonを実行し、縮小
・その写真をアップ(必要があれば編集後に)
とはいえ、Pythonのコードを書くには楽ではありません。
今ならChatGPTを使いましょう。
ChatGPT×Pythonの活用
ChatGPTには次のように入れます。
2行目は、写真ファイルがある場所です。
・Windowsならエクスプローラーで、右クリックしてパスのコピー
・MacならFinderで右クリックしてoptionキーを押しながら[◯◯◯のパス名のコピー]
という方法でコピーできます。
写真ファイルは、JPEG jpeg JPG jpg pngといった拡張子なので、それをすべて指定し、幅も指定しましょう。
結果、コードが出てきます。
まず、パソコンにPythonをインストールしましょう。
ライブラリというものは、
・Windowsだとコマンドプロンプトという標準アプリ
・Macだとターミナルという標準アプリ
に入れて、Pillowという機能をインストールするものです。
その後、IDLE(Pythonをインストールすると使えるアプリ)にChatGPTのコードを貼り付けて実行すると、写真を縮小できます。
ChatGPTの有益な使い道の1つは、プログラミング。
基本を押させて、ChatGPTに書いてもらってみましょう。
(うまくいかないときもありますが)
コードは置いておきます。
from PIL import Image import os # ファイルが存在するディレクトリ directory = "■■ご自身のパソコンのフォルダのパス" # 幅を変更する画像の拡張子 extensions = ['JPEG', 'jpeg', 'JPG', 'jpg', 'png'] # 幅 target_width = 2560 def resize_images(directory, extensions, target_width): for filename in os.listdir(directory): # 拡張子が指定されたものであれば処理を続行 if filename.split('.')[-1] in extensions: filepath = os.path.join(directory, filename) try: with Image.open(filepath) as img: # 幅を2560pxに変更 width_percent = (target_width / float(img.size[0])) height = int((float(img.size[1]) * float(width_percent))) img = img.resize((target_width, height), Image.LANCZOS) img.save(filepath) print(f"{filename} resized successfully.") except Exception as e: print(f"Error resizing {filename}: {e}") # 画像のリサイズを実行 resize_images(directory, extensions, target_width)
■編集後記
昨日は、朝からトライアスロンバイクのグループレッスンを受けに仲間と。
久しぶりに大井ふ頭へ行きました。
日曜日は、車が少なめでバイク練習のメッカになっています。
その後、家族と合流して、かき氷フェスタへ。
■1日1新→Kindle『1日1新』
ODAIBAかき氷フェス
大井ふ頭でグループレッスン
今の自宅から大井ふ頭へ
■娘(7歳)日記→Kindle『娘日記』・ Kindle『娘日記Ⅱ』
「行くなら暑い日がいい」と、気温が上がった日にかき氷フェスへ。
娘が選んだのは、桃のかき氷でした。
その後、もうちょっと食べたいと、親子丼を。
カルボナーラ親子丼、なかなかおいしかったです。
■著書
『税理士のためのプログラミング -ChatGPTで知識ゼロから始める本-』
『すべてをがんばりすぎなくてもいい!顧問先の満足度を高める税理士業務の見極め方』
ひとり税理士のギモンに答える128問128答
【インボイス対応版】ひとり社長の経理の基本
「繁忙期」でもやりたいことを諦めない! 税理士のための業務効率化マニュアル
ひとり税理士の自宅仕事術
リモート経理完全マニュアル――小さな会社にお金を残す87のノウハウ
ひとり税理士のセーフティネットとリスクマネジメント
税理士のためのRPA入門~一歩踏み出せば変えられる!業務効率化の方法~
やってはいけないExcel――「やってはいけない」がわかると「Excelの正解」がわかる
AI時代のひとり税理士
新版 そのまま使える 経理&会計のためのExcel入門
フリーランスとひとり社長のための 経理をエクセルでトコトン楽にする本
新版 ひとり社長の経理の基本
『ひとり税理士の仕事術』
『フリーランスのための一生仕事に困らない本』
【監修】十人十色の「ひとり税理士」という生き方