pick random frame from gifs
This commit is contained in:
@@ -6,9 +6,7 @@ import random
|
||||
import requests
|
||||
import os
|
||||
import pyszuru
|
||||
|
||||
from PIL import Image
|
||||
|
||||
from PIL import Image, ImageSequence, UnidentifiedImageError
|
||||
|
||||
|
||||
from epd.epd_config import palArr, epdArr, EPD_TYPES
|
||||
@@ -57,7 +55,7 @@ while not image_downloaded:
|
||||
img.close()
|
||||
image_downloaded = True
|
||||
print("[DEBUG] Image successfully verified.")
|
||||
except (PIL.UnidentifiedImageError, requests.exceptions.RequestException) as e:
|
||||
except (UnidentifiedImageError, requests.exceptions.RequestException) as e:
|
||||
print(
|
||||
f"[ERROR] Failed to process downloaded file (Error: {e}). Retrying with a new post..."
|
||||
)
|
||||
@@ -81,6 +79,13 @@ while not image_downloaded:
|
||||
|
||||
# Process and upload
|
||||
img = Image.open("image.jpg")
|
||||
if post.mime == "image/gif":
|
||||
# Seek to a random frame
|
||||
random_frame_index = random.randint(0, img.n_frames - 1)
|
||||
print(f"[DEBUG] Detected GIF, selecting frame: {random_frame_index}")
|
||||
img.seek(random_frame_index)
|
||||
# Convert the frame to an RGB image to discard GIF palette and alpha for processing
|
||||
img = img.convert("RGB")
|
||||
|
||||
# Get configuration from environment variables
|
||||
try:
|
||||
|
Reference in New Issue
Block a user