Created
June 3, 2024 01:33
-
-
Save tori29umai0123/7e2233237c31dd4215e386e24c7871d0 to your computer and use it in GitHub Desktop.
GaussianBlur.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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