Cóż, ja nie znalazłem gotowego do użycia roztworu, ale można to zrobić w ten sposób (będzie to prowadzić do „niskiego poziomu” sztuczek):
Following wiki about GIFs, animowanych plików GIF może być podzielone na ramki, a koniec ramki można łatwo rozpoznać. Tak więc musisz przeczytać nagłówek GIF, informacje ekranowe, informacje o animacji w buforze, pobrać pierwszą ramkę i dołączyć informacje, takie jak GIF, jest zakończone ("3B" po artykule na wiki). Jeśli skopiujesz te dane do oddzielnego bufera, będziesz mógł kontynuować pobieranie całego pliku bez ponownej instalacji pierwszej klatki.
Możesz również edytować informacje w nagłówku, aby sformatować pierwszą klatkę w statyczny gif.
Chciałbym znać powód do głosowania w dół całkowicie prawidłowe pytanie. –
Korzystanie z biblioteki z tego linku: https://github.com/dragon66/icafe, byłoby tak proste, jak jedno połączenie liniowe: ImageIO.getReader (ImageType.GIF) .getFrameAsBufferedImage (InputStream jest) lub ImageIO.getReader (ImageType. GIF) .read (InputStream jest). Typem powrotu będzie Java BufferedImage. – dragon66