MaxDiff
GifOptions.MaxDiff property
Получает или задает максимально допустимую разницу в пикселях. Если больше нуля, будет использоваться сжатие с потерями. Рекомендуемое значение для оптимального сжатия с потерями — 80. 30 — очень легкое сжатие, 200 — тяжелое. очень высокие уровни потерь не дадут такого большого выигрыша. Диапазон допустимых значений: [0, 1000].
public int MaxDiff { get; set; }
Примеры
В этом примере показано, как сохранить изображение BMP в формате GIF, используя различные параметры.
[C#]
string dir = "c:\\temp\\";
using (Aspose.Imaging.Image bmpImage = new Aspose.Imaging.FileFormats.Bmp.BmpImage(1000, 1000))
{
// Заливаем все изображение сине-желтым градиентом.
Aspose.Imaging.Brushes.LinearGradientBrush gradientBrush = new Aspose.Imaging.Brushes.LinearGradientBrush(
new Aspose.Imaging.Point(0, 0),
new Aspose.Imaging.Point(bmpImage.Width, bmpImage.Height),
Aspose.Imaging.Color.Blue,
Aspose.Imaging.Color.Yellow);
Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(bmpImage);
graphics.FillRectangle(gradientBrush, bmpImage.Bounds);
Aspose.Imaging.ImageOptions.GifOptions saveOptions = new Aspose.Imaging.ImageOptions.GifOptions();
// Количество битов, необходимых для хранения цвета, минус 1.
saveOptions.ColorResolution = 7;
// Коррекция палитры означает, что всякий раз, когда изображение экспортируется в GIF, цвета исходного изображения будут анализироваться
// чтобы создать наиболее подходящую палитру (в случае, если палитра изображений не существует или не указана в параметрах)
saveOptions.DoPaletteCorrection = true;
// Загружаем GIF-изображение последовательно.
// В чересстрочном GIF строки развертки отображаются не линейно сверху вниз, а переупорядочиваются.
// поэтому содержимое GIF становится понятным еще до того, как он завершит загрузку.
saveOptions.Interlaced = true;
// Сохранить как GIF без потерь.
using (System.IO.Stream stream = System.IO.File.OpenWrite(dir + "output.gif"))
{
bmpImage.Save(stream, saveOptions);
System.Console.WriteLine("The size of the lossless GIF: {0} bytes.", stream.Length);
}
// Установите максимально допустимую разницу в пикселях. Если больше нуля, будет использоваться сжатие с потерями.
// Рекомендуемое значение для оптимального сжатия с потерями — 80. 30 — очень легкое сжатие, 200 — тяжелое.
saveOptions.MaxDiff = 80;
// Сохранить как GIF с потерями.
using (System.IO.Stream stream = System.IO.File.OpenWrite(dir + "output.lossy.gif"))
{
bmpImage.Save(stream, saveOptions);
System.Console.WriteLine("The size of the lossy GIF: {0} bytes.", stream.Length);
}
}
//Вывод может выглядеть так:
//Размер GIF без потерь: 212816 байт.
//Размер GIF с потерями: 89726 байт.
Смотрите также
- class GifOptions
- пространство имен Aspose.Imaging.ImageOptions
- сборка Aspose.Imaging