画像の圧縮

Python
from PIL import Image
import os

pillowは画像の加工や保存ができるライブラリであり、標準ライブラリであるOpenCVよりも使いやすいらしいです

directory_path = "C:/Users/your-name/Downloads/"
file_full_name_list = os.listdir(directory_path)

for file_full_name in file_full_name_list:

  file_base_name, ext = os.path.splitext(file_name)

  if ext == '.png':
    img = Image.open(directory_path + file_full_name)
    img = img.convert("P", palette=Image.ADAPTIVE, colors=128)
    img.save( (directory_path + file_base_name + "_comp.png"), optimize=True )

  elif ext == '.jpg':
    img = Image.open(directory_path + file_full_name)
    img.save( (directory_path + file_base_name + "_comp.jpg"), optimize=True, quality=50 )

  elif ext == '.webp':
    img = Image.open(directory_path + file_full_name)
    img.save( (directory_path + file_base_name + "_comp.webp"), optimize=True, quality=50 )

PNGは他の画像フォーマットと異なり、圧縮率を変更して画像を圧縮することができません

そのため、img.convert()で画像の色数colorsを削減して圧縮します

colorsは1~256で設定可能

BACK