from PIL import Image import os def gif_to_bmp(gif_path, output_dir, size=(16, 16)): # Otwórz plik GIF with Image.open(gif_path) as img: # Sprawdź, czy obraz jest animowany if not img.is_animated: print("GIF nie jest animowany. Konwertuję pojedynczy obraz na BMP.") img_resized = img.resize(size, Image.Resampling.LANCZOS) img_resized.save(os.path.join(output_dir, "frame_000.bmp"), format="BMP") else: # Tworzenie katalogu wyjściowego, jeśli nie istnieje if not os.path.exists(output_dir): os.makedirs(output_dir) # Iteracja przez wszystkie klatki GIF-a for frame_number in range(img.n_frames): img.seek(frame_number) # Ustaw na klatkę o numerze frame_number # Przeskalowanie klatki do rozmiaru 16x16 img_resized = img.resize(size, Image.Resampling.LANCZOS) frame_filename = os.path.join(output_dir, f"frame_{frame_number:03d}.bmp") img_resized.convert("RGB").save(frame_filename, format="BMP") print(f"Zapisano klatkę {frame_number} jako {frame_filename}") # Przykładowe użycie gif_path = "kolor.gif" # Ścieżka do pliku GIF output_dir = "kolor_gif" # Katalog, w którym zostaną zapisane klatki BMP gif_to_bmp(gif_path, output_dir)