写真がたくさんたまってきました。
表示の遅さが気になります
写真のフォーマットをwebpに変更してみます

使うツールは
https://developers.google.com/speed/webp/download?hl=ja

 

cwebp.exeで変換します。速度は速くないですが、サイズは20分の1くらいになります

274ファイル 1.85gb ==> 97.9mbになりました

ファイルをサーバにアップロードして、データベースを変更

SQL

UPDATE photos SET filename = REPLACE(filename, '.jpg', '.webp')


これで表示速度も改善しました



pythonで行います
import os
import subprocess
from pathlib import Path

def convert_jpg_to_webp(input_dir, output_dir, cwebp_path):
    # パスをPathオブジェクトに変換
    input_path = Path(input_dir)
    output_path = Path(output_dir)
    
    # 出力先フォルダーがなければ作成
    output_path.mkdir(parents=True, exist_ok=True)
    
    # 対応する拡張子(大文字小文字を区別しないため)
    valid_extensions = {'.jpg', '.jpeg', '.JPG', '.JPEG'}
    
    # 入力フォルダー内のファイルを走査
    success_count = 0
    for file_path in input_path.iterdir():
        if file_path.is_file() and file_path.suffix in valid_extensions:
            # 出力するファイル名(拡張子を .webp に変更)
            output_file_path = output_path / f"{file_path.stem}.webp"
            
            # cwebpのコマンドを作成
            # -q 80 は画質(0〜100)。お好みで調整してください。
            cmd = [
                cwebp_path,
                "-q", "80",
                str(file_path),
                "-o", str(output_file_path)
            ]
            
            try:
                # コマンドの実行
                subprocess.run(cmd, check=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
                print(f"変換成功: {file_path.name} -> {output_file_path.name}")
                success_count += 1
            except subprocess.CalledProcessError:
                print(f"エラー発生(変換失敗): {file_path.name}")
            except FileNotFoundError:
                print(f"エラー: {cwebp_path} が見つかりません。パスを確認してください。")
                return

    print(f"\n完了: {success_count} 枚の画像を変換しました。")

# 設定
INPUT_FOLDER = "org_picture"
OUTPUT_FOLDER = "picture"
CWEBP_EXE = "./cwebp.exe"  # 同じフォルダーにある場合。環境変数にあるなら "cwebp" でOK

# 実行
if __name__ == "__main__":
    convert_jpg_to_webp(INPUT_FOLDER, OUTPUT_FOLDER, CWEBP_EXE)