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