Настройка параметров изображений в коллекции Magick .NET

1

Я пытаюсь уменьшить размеры файлов анимации GIF, которые я экспортирую, я прочитал, как это сделать. Другая тема предложила уменьшить качество, добавить сжатие и слегка размыть изображение, которое я пытаюсь сделать так:

using (MagickImageCollection col = new MagickImageCollection(@"C:/PathToGif"))
        {
            for (int i = 0; i < col.Count; i++)
            {
                col[i].Quality = 85;
                col[i].CompressionMethod = CompressionMethod.LZW;
                col[i].Strip();
            }

            col.Write(@"C:/Path/To/Outputh");
        }

Код работает, однако настройки, похоже, игнорируются, а установка AnimationDelay одинаково работает. Я проверяю его, проверяя качество и размер файла вывода, которые кажутся такими же, как когда я не использую никаких настроек. Даже установление quality до 20 дает одинаковые результаты.

Я также попытался использовать QuantizeSettings где я передал значение 255 в свойство colors. Казалось, что я заблокировал свое приложение, используя 50% процессор. (Я дал ему около 5 минут, прежде чем принудительно закрыть приложение)

Мое приложение обрабатывает.GIF около 950 кБ и превращает его в 5,3 мБ, что неприемлемо. (Отказ от ответственности: я добавляю кадры 20+- в.GIF и накладываю на них наложение.)

Может ли кто-нибудь, кто имеет опыт работы с библиотекой Magick.NET, сказать мне, что я делаю что-то не так, и назовите меня в правильном направлении? Мне не удалось найти другой способ применения этих настроек.

Теги:
magick.net

1 ответ

2
Лучший ответ

Кодер GIF не использует параметр качества, а CompressionMethod всегда будет CompressionMethod.LZW. Вы должны сделать следующее, если хотите оптимизировать выходной файл:

using (MagickImageCollection col = new MagickImageCollection(@"C:/PathToGif"))
{
  col.Coalesce();

  AddOtherImages(col);

  col.Optimize();
  col.OptimizeTransparency();

  col.Write(@"C:/Path/To/Output");
}

Убедитесь, что вы обновляетесь до последней версии, методы Optimize/OptimizeTransparency были прослушиваны в предыдущих версиях.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню