rocker_003 Ответов: 1

Как изменить размер gif, который хранится в растровом изображении


я попытался изменить размер Gif-изображения, но после изменения размера оно не будет анимироваться. я попробовал изменить размер кода следующим образом.

Что я уже пробовал:

LastBitImg = new Bitmap(Convert.ToInt32(FNewWidth), Convert.ToInt32(height));
                        LastBitImg = FBitImg;

1 Ответов

Рейтинг:
2

Jochen Arndt

Анимированный GIF-это не одно изображение, а последовательность изображений (также называемых кадрами) с дополнительными данными, такими как задержка кадра. Вы должны разделить анимированный GIF на его кадровые изображения в виде растровых изображений, изменить их размер и создать новый анимированный GIF, используя исходные данные кадра.

Здесь в CP есть статья о создании анимированных GIF файлов с помощью .Net: NGif, анимированный GIF-кодер для .NET[^].

В качестве альтернативы используйте библиотеку изображений, которая поддерживает изменение размера анимированных GIF-файлов, таких как ImageMagick (есть .Сетчатая обертка на GitHub: dlemstra/Magick.NET[^] ).


rocker_003

я сохранил gif-изображение в растровом изображении... теперь как я могу отделить его кадры и изменить размер одного за другим кадров?

Jochen Arndt

Вы должны извлечь несколько кадров анимированного GIF в несколько растровых изображений.
использовать изображения.FrameDimensionsList() для получения списка информации о кадрах (размер списка-это количество кадров), где каждая запись списка имеет тип FrameDimension.
Затем используйте изображение.SelectActiveFrame() для доступа к каждому кадру (изображению) и сохранения его в виде растрового изображения.