Стиснення зображень є популярним способом зменшення розміру зображень. Це дозволяє мінімізувати простір і час, необхідні для зберігання та передачі зображень відповідно. Доступні різні методи стиснення, які стискають зображення таким чином, щоб якість зображень не погіршувалася. Відповідно до цього, у цій публікації ви знайдете кілька простих способів програмного стиснення зображень PNG, JPEG і TIFF за допомогою C#.

API стиснення зображень C# — безкоштовне завантаження

Aspose.Imaging for .NET — це потужний API для обробки зображень, який дає змогу керувати популярними форматами зображень у ваших програмах .NET. Крім того, API дозволяє застосовувати різні типи стиснення до зображень, включаючи PNG, JPEG і TIFF. Щоб використовувати API, ви можете завантажити його DLL або встановити його за допомогою NuGet.

Install-Package Aspose.Imaging

Стиснення зображень PNG у C#

Для зображень у форматі PNG можна встановити рівень стиснення від 0 до 9, де 9 — максимальне стиснення, а 0 — режим збереження. Нижче наведено кроки для стиснення зображення PNG за допомогою Aspose.Imaging for .NET.

  • Завантажте зображення за допомогою класу Image.
  • Створіть об’єкт класу PngOptions.
  • Встановіть рівень стиснення за допомогою властивості PngOptions.CompressionLevel.
  • Збережіть зображення за допомогою методу Image.Save(String, PngOptions).

У наступному прикладі коду показано, як стискати зображення PNG за допомогою C#.

// Шлях до каталогу документів.
string dataDir = RunExamples.GetDataDir_PNG();
 
// Завантажити зображення з файлу (або потоку)
using (Image image = Image.Load(dataDir + "aspose_logo.png"))
{
    // Перейти до можливого діапазону рівня стиснення
   for (int i = 0; i <= 9; i++)
    {
        // Створіть екземпляр PngOptions для кожного результуючого PNG, установіть рівень стиснення та збережіть результат на диску
        PngOptions options = new PngOptions();
        options.CompressionLevel = i;
        image.Save(i + "_out.png", options);
    }
}

Стиснення зображень JPEG у C#

Для обробки зображень JPEG Aspose.Imaging for .NET надає клас JpegOptions, який пропонує наступні типи стиснення для зображень JPEG.

  • Базовий рівень
  • Прогресивний
  • Без втрат
  • JpegLs

Нижче наведено кроки для стиснення зображень JPEG за допомогою одного з вищезгаданих типів стиснення.

  • Завантажте зображення JPEG за допомогою класу Image.
  • Створіть об’єкт класу JpegOptions.
  • Встановіть колірний режим за допомогою властивості JpegOptions.ColorType.
  • Встановіть тип стиснення за допомогою властивості JpegOptions.CompressionType.
  • Збережіть зображення за допомогою методу Image.Save(String, JpegOptions).

У наступному прикладі коду показано, як стиснути зображення JPEG за допомогою C#.

// Шлях до каталогу документів.
string dataDir = RunExamples.GetDataDir_JPEG();
          
using (var original = Image.Load(dataDir+"ColorGif.gif"))
{
    var jpegOptions = new JpegOptions()
{
    ColorType = JpegCompressionColorMode.Grayscale,
    CompressionType = JpegCompressionMode.Progressive,
          
};
    original.Save("D:/temp/result.jpg", jpegOptions);
}

Застосування стиснення до зображень TIFF у C#

Aspose.Imaging for .NET надає широкий діапазон типів стиснення для зображень TIFF, включаючи LZW, Packbits, CCIT Fax 3 & 4 тощо. Ви можете вибрати відповідний тип відповідно до ваших вимог. Нижче наведено кроки для стиснення зображення TIFF.

У наступному прикладі коду показано, як стискати зображення TIFF за допомогою C#.

// Шлях до каталогу документів.
string dataDir = RunExamples.GetDataDir_ModifyingAndConvertingImages();

// Завантажте зображення через шлях до файлу або потік
Image image = Image.Load(dataDir + "SampleTiff.tiff");

// Створіть екземпляр TiffOptions для отриманого зображення
TiffOptions outputSettings = new TiffOptions(TiffExpectedFormat.Default);

// Установіть BitsPerSample, Compression, Photometric mode та палітру відтінків сірого
outputSettings.BitsPerSample = new ushort[] { 4 };
outputSettings.Compression = TiffCompressions.Lzw;
outputSettings.Photometric = TiffPhotometrics.Palette;
outputSettings.Palette = ColorPaletteHelper.Create4BitGrayscale(false);
image.Save(dataDir + "SampleTiff_out.tiff", outputSettings);

Висновок

У цій публікації ви дізналися, як стискати зображення PNG, JPEG і TIFF за допомогою C#. Для зображень JPEG і TIFF також перераховано різні підтримувані методи стиснення. Ви можете дізнатися більше про API обробки зображень .NET за допомогою документації.

Дивись також

Інформація: використовуючи конвертер Aspose JPG to PPT або PNG to PPT, ви можете створювати презентації PowerPoint із простих зображень.