Skip to content

Instantly share code, notes, and snippets.

@tori29umai0123
Created June 3, 2024 01:33
Show Gist options
  • Save tori29umai0123/7e2233237c31dd4215e386e24c7871d0 to your computer and use it in GitHub Desktop.
Save tori29umai0123/7e2233237c31dd4215e386e24c7871d0 to your computer and use it in GitHub Desktop.
GaussianBlur.py
import os
from concurrent.futures import ThreadPoolExecutor
from PIL import Image, ImageFilter
from PIL import Image, ImageFilter
def apply_blur_to_image(image_path, output_path, blur_radius):
"""指定された画像にブラー効果を適用し、指定されたパスに保存する"""
try:
image = Image.open(image_path)
blurred_image = image.filter(ImageFilter.GaussianBlur(blur_radius))
blurred_image.save(output_path)
print(f"Processed {image_path} to {output_path}")
except Exception as e:
print(f"Failed to process {image_path}: {e}")
def process_images_concurrently(input_dir, output_dir, max_workers, blur_radius):
"""指定されたディレクトリのすべての画像に対して並列でブラー処理を行う"""
with ThreadPoolExecutor(max_workers=max_workers) as executor:
for filename in os.listdir(input_dir):
if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif', '.tiff', '.webp')):
image_path = os.path.join(input_dir, filename)
output_path = os.path.join(output_dir, filename)
executor.submit(apply_blur_to_image, image_path, output_path, blur_radius)
if __name__ == '__main__':
image_dir = 'D:/webp'
output_dir = 'D:/blur'
max_workers = 12
blur_radius = 12
if not os.path.exists(output_dir):
os.makedirs(output_dir)
process_images_concurrently(image_dir, output_dir, max_workers, blur_radius)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment