Я не знаю, почему этого нет в документации, но кто-то другой ответил здесь на stackoverflow.
Таким образом, вы можете использовать это либо со строкой пути к файлу, либо с потоком/буфером, например:
Для файла:
gm('/path/to/animated.gif')
.selectFrame(0)
.write('/path/to/firstframe.png', function(err){
if (err) print(' :( ');
})
Для потока/буфера:
gm(streamOrBuffer)
.selectFrame(0)
.write('/path/to/firstframe.png', function(err){
if (err) print(' :( ');
})
В документации говорится, что вам нужно изменить строку пути на что-то вроде '/path/to/animated.gif[0]'
, чтобы быть более конкретным с фреймом, который вы хотите выбрать, но я протестировал этот код без указания фрейма, и он работал нормально (используя [email protected] и ImageMagick 6.7.7-10 2014-03-06). Кроме того, то, что было в документации (без использования selectFrame), не работало. Это закончилось сбоем и созданием нескольких png-кадров всего gif в процессе.
Почему они до сих пор не задокументировали selectFrame, мне непонятно. Как они указали в процитированной ссылке, существует открытая проблема, задающаяся именно этим вопросом.
person
Lucio Mollinedo
schedule
11.03.2016
gm
генерирует для вас? - person Jonathan Ong   schedule 20.06.2013