リブログ記事””たくさん撮った写真があるのでホームページで公開するアプリをAIに作らせました””
写真がたくさんたまってきました。表示の遅さが気になります写真のフォーマットをwebpに変更してみます使うツールはhttps://developers.google.com/speed/webp/download?hl=jacwebp | WebP | Google for Developersdevelopers.google.comlibwebp-0.4.1-rc1-windows-x64.zip を使いますプログラムはbinに入っています Index of downloads.webmproject.org/releases/webpstorage.googleapis.comcwebp.exeで変換します。速度は速くないですが、サイズは20分の1くらいになります274ファイル 1.85gb ==> 97.9mbになりましたファイルをサーバにアップロードして、データベースを変更SQLUPDATE photosSET filename = REPLACE(filename, '.jpg', '.webp')これで表示速度も改善しましたpythonで行いますimport osimport subprocessfrom pathlib import Pathdef 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)