Jak zoptymalizować zduplikowane klatki w animowanym pliku GIF za pomocą programu Photoshop?

10

Eksperymentowałem z techniką zwaną kinografiami . Ta technika tworzy animowane pliki GIF, w których animowana jest tylko niewielka część sceny. Oto szybki, który właśnie stworzyłem:

wprowadź opis zdjęcia tutaj

Do tej pory Photoshop wykonuje dobrą robotę, kompresując statyczne części sceny. Maskując tylko ruchomą część, możesz zapisać kilka megabajtów.

wprowadź opis zdjęcia tutaj

Photoshop nie optymalizuje dobrze powielonych ramek. Aby uzyskać płynną pętlę, powielam wszystkie klatki i odwracam je. W powyższym przykładzie prezenter skręca w lewo i musi wrócić do swojej pierwotnej pozycji. To zawsze podwaja rozmiar GIF-a . Jak powiedzieć Photoshopowi, aby zoptymalizował zduplikowane klatki, tak jak optymalizuje obszary statyczne? W menu panelu Oś czasu użyłem już opcji „Optymalizuj animacje”, ale to nic nie zrobiło ...

JoJo
źródło
Nie sądzę, aby Photoshop miał jakikolwiek mechanizm do wyświetlania „zduplikowanych ramek”. Po prostu widzi podobne piksele między ramkami. I nawet wtedy uważam, że tylko poprzednia i następna klatka.
Scott,
@Dominic Nie będę mieć kontroli nad CSS / JS. Zamieszczę te gify na innych stronach. Scott: Czy wiesz, jak PS dzieli części statyczne od części dynamicznych? Czy jest to obwiednia (okrąg, trójkąt itp.)? Ile obszarów dynamicznych jest dozwolonych? Itd ...
JoJo

Odpowiedzi:

3

Jeśli rozumiem twoje pytanie, masz animację z (powiedzmy) 5 klatkami. Ramki 1 i 5, 2 i 4 są identyczne. Więc chcesz, aby Photoshop grał w gif w ten sposób: 1,2,3,2,1.

Niestety jest to niemożliwe w przypadku animowanego gifa. Gify są budowane w celu umożliwienia strumieniowego przesyłania danych, wyświetlając kolejną klatkę w sekwencji, gdy dane są ładowane. Pierwsza ramka jest uważana za globalną, a jej dane można wykorzystać w każdej kolejnej ramce. Tak więc pierwsza klatka ustawia podstawę, a następnie „Optymalizacja animacji” zmienia identyczne piksele w klatki po pierwszej. Nie ma więc możliwości odtworzenia poprzedniej klatki, muszą one przejść, nawet jeśli klatka jest identyczna z bieżącą. Wikipedia wyjaśnia to bardziej szczegółowo niż ja.

Dawno temu zrobiłem coś podobnego (spójrz do menu) do tego, czego szukasz za pomocą javascript i numerowanych sekwencji plików JPG. Skrypt odtwarza obrazy 1-10 po najechaniu myszką, a następnie 10-1 po najechaniu myszką.

Ogień
źródło