Spaces:
Sleeping
Sleeping
""" | |
Utility functions for image processing and data handling. | |
""" | |
import os | |
import shutil | |
import tempfile | |
from PIL import Image | |
import numpy as np | |
def create_thumbnail(image_path, max_size=(200, 200)): | |
""" | |
Create a thumbnail of an image. | |
Args: | |
image_path: path to the image file | |
max_size: maximum size of the thumbnail as (width, height) | |
Returns: | |
PIL.Image: thumbnail image | |
""" | |
try: | |
image = Image.open(image_path) | |
image.thumbnail(max_size) | |
return image | |
except Exception as e: | |
print(f"Error creating thumbnail for {image_path}: {e}") | |
return None | |
def create_temp_directory(): | |
""" | |
Create a temporary directory for storing intermediate files. | |
Returns: | |
str: path to the temporary directory | |
""" | |
temp_dir = tempfile.mkdtemp(prefix="image_evaluator_") | |
return temp_dir | |
def cleanup_temp_directory(temp_dir): | |
""" | |
Clean up a temporary directory. | |
Args: | |
temp_dir: path to the temporary directory | |
""" | |
if os.path.exists(temp_dir): | |
shutil.rmtree(temp_dir) | |
def ensure_directory(directory): | |
""" | |
Ensure that a directory exists, creating it if necessary. | |
Args: | |
directory: path to the directory | |
Returns: | |
str: path to the directory | |
""" | |
os.makedirs(directory, exist_ok=True) | |
return directory | |
def is_valid_image(file_path): | |
""" | |
Check if a file is a valid image. | |
Args: | |
file_path: path to the file | |
Returns: | |
bool: True if the file is a valid image, False otherwise | |
""" | |
try: | |
with Image.open(file_path) as img: | |
img.verify() | |
return True | |
except: | |
return False | |
def convert_to_rgb(image_path): | |
""" | |
Convert an image to RGB mode if necessary. | |
Args: | |
image_path: path to the image file | |
Returns: | |
numpy.ndarray: RGB image array | |
""" | |
try: | |
image = Image.open(image_path) | |
if image.mode != 'RGB': | |
image = image.convert('RGB') | |
return np.array(image) | |
except Exception as e: | |
print(f"Error converting image to RGB: {e}") | |
return None | |