Spaces:
Runtime error
Runtime error
import time | |
from functools import wraps | |
import base64 | |
from io import BytesIO | |
def timing_decorator(func): | |
def wrapper(*args, **kwargs): | |
start_time = time.time() | |
result = func(*args, **kwargs) | |
end_time = time.time() | |
execution_time = end_time - start_time | |
print(f"Function {func.__name__} took {execution_time:.4f} seconds to execute.") | |
return result | |
return wrapper | |
def pil_image_to_base64_url(image, format='JPEG'): | |
""" | |
Convert a PIL image to a Base64-encoded URL. | |
:param image: PIL image object | |
:param format: Image format (default is JPEG) | |
:return: Base64 URL string | |
""" | |
# Create a BytesIO object to hold the image in memory | |
buffered = BytesIO() | |
# Save the image in the provided format (e.g., JPEG or PNG) | |
image.save(buffered, format=format) | |
# Get the base64 encoded string | |
img_str = base64.b64encode(buffered.getvalue()).decode("utf-8") | |
# Create the Base64 URL string | |
base64_url = f"data:image/{format.lower()};base64,{img_str}" | |
return base64_url | |
def pil_image_to_data_url(pil_image): | |
# Convert the image to RGB mode if it's not already | |
if pil_image.mode != 'RGB': | |
pil_image = pil_image.convert('RGB') | |
# Create a BytesIO object to store the image data | |
buffered = BytesIO() | |
# Save the image as JPEG to the BytesIO object | |
pil_image.save(buffered, format="JPEG") | |
# Encode the image data as base64 | |
img_str = base64.b64encode(buffered.getvalue()).decode() | |
# Create the data URL | |
data_url = f"data:image/jpeg;base64,{img_str}" | |
return data_url |