Как загрузить GIF-изображение с компьютера в Haskell? - PullRequest
0 голосов
/ 26 февраля 2019

Я хочу, чтобы GIF-изображение зацикливалось на фоне игры (например, с Gloss Juicy или модулем Codec.Picture.Gif)

Управляется для работы с BMP-изображением, подобным этому:

image :: IO Picture 
image = loadBMP "image.bmp"

Но теперь я хочу сделать то же самое с изображением GIF:

loadGifFile :: FilePath -> IO Image 
loadGifFile = "image.gif"

Не могу заставить его работать.

Благодарен за любой совет, как это сделатьэто.

1 Ответ

0 голосов
/ 26 февраля 2019

Тебе придется сделать еще немного работы.loadBMP просто загружает файл BMP в растровое изображение, которое представляет собой одно изображение.Однако анимированный GIF - это более сложный формат файла, в котором есть несколько кадров.GLOSS просто не поддерживает это из коробки.

Вы можете использовать JuicyPixels для декодирования файла GIF, а затем написать некоторый код для преобразования его в список растровых изображений GLOSS.Затем используйте animate, чтобы нарисовать эти изображения в последовательности.

...