PR

WebP画像に変換して保存する

はじめに

WebPとは

WebPは、Googleが開発した新しい世代の画像フォーマットです。従来のJPEGやPNGに比べて、高い圧縮率優れた画質を両立しており、Webサイトの表示速度を大幅に改善することができます。

WebPのメリット

  • 高い圧縮率: JPEGよりもさらに高い圧縮率を実現し、画像サイズを大幅に削減できます。これにより、Webサイトの読み込み速度が向上し、ユーザー体験が改善されます。
  • 高画質: 高い圧縮率でありながら、JPEGと同等以上の画質を維持することができます。特に、写真やグラフィックデザインなど、画質が重要な画像に適しています。
  • 透過処理: PNGのように画像の背景を透過させることができます。
  • アニメーション: GIFのような簡単なアニメーションを作成することも可能です。

WebPのデメリット

  • ブラウザの対応: 全てのブラウザがWebPに対応しているわけではありません。古いブラウザでは表示できない場合があります。
  • ソフトウェアの対応: すべての画像編集ソフトがWebPに対応しているわけではありません。

「Pillow」のインストール

Pillowとは

Pillowは、Python Imaging Library (PIL)のフォークで、画像処理を行うための強力なライブラリです。

Pillowのインストール

「Pillow」をインストールします。

pip install Pillow

pillow
Python Imaging Library (Fork)

コード

ファイルを変換して指定フォルダに保存

Python
from PIL import Image
import os

def convert_to_webp(image_path, output_folder,quality = 80 ):
    try:
        # 画像を開く
        img = Image.open(image_path)

        # 出力ファイルのパスを設定 (.webp形式)
        base_name = os.path.splitext(os.path.basename(image_path))[0]
        webp_path = os.path.join(output_folder, f"{base_name}.webp")
        
        # webpに変換して保存 (クオリティを指定)
        img.save(webp_path, "WEBP", quality=quality)
        print(f"Converted {image_path} to {webp_path} with quality {quality}")
        
        # 元のファイルを削除
        os.remove(image_path)
        print(f"Deleted original file: {image_path}")
        
    except Exception as e:
        print(f"Error: {e}")


input_file = 'c:\\input.jpg'
output_path = 'c:\\Convert'
convert_to_webp(input_file, output_path)

フォルダを一括で変換する

Python
import os 

for filename in os.listdir('input_images'): 
  if filename.endswith('.jpg') or filename.endswith('.png'): 
    input_file = os.path.join('input_images', filename) 
    output_file = os.path.join('output_images', os.path.splitext(filename)[0] + '.webp')
    convert_to_webp(input_file, output_file)

イメージのサイズを変更

img = img.resize((new_width, new_height))