mosaic / src /tile_generator.py
Alex Hortua
Organizing code in modules
7890f1f
from faker import Faker
import requests
from PIL import Image
from io import BytesIO
import os
import uuid
import numpy as np
fake = Faker()
def fetch_fake_user_images(num_images=10):
"""
Fetch and save random cat avatar images using the RoboHash API.
This function generates random cat avatars, saves them to the public/cats directory,
and returns them as a list of numpy arrays.
Args:
num_images (int, optional): Number of avatar images to generate. Defaults to 10.
Returns:
list: A list of numpy arrays containing the avatar images.
Note:
- Images are fetched from robohash.org using random UUIDs
- Images are saved as 32x32 PNG files in the public/cats directory
- Each image is assigned a unique UUID as filename
"""
avatars = []
for _ in range(num_images):
# Generate unique URL for each avatar
avatar_url = f"https://robohash.org/{fake.uuid4()}?size=32x32&set=set4"
# Fetch the image from the API
response = requests.get(avatar_url)
img = Image.open(BytesIO(response.content))
# Convert to numpy array and store in list
avatars.append(np.array(img))
# Save image to local filesystem
img_path = os.path.join('public', 'cats', f"{uuid.uuid4()}.png")
img.save(img_path, "PNG")
return avatars