Compressão de imagem é uma forma popular de reduzir o tamanho das imagens. Permite minimizar o espaço e o tempo necessários para armazenar e transmitir imagens, respectivamente. Estão disponíveis várias técnicas de compressão que comprimem imagens de forma a que a qualidade das imagens não seja degradada. De acordo com isso, este post fornece algumas maneiras simples de como compactar imagens PNG, JPEG e TIFF programaticamente usando C#.

API de compactação de imagem C# - download gratuito

Aspose.Imaging for .NET é uma poderosa API de processamento de imagem que permite manipular formatos de imagem populares de dentro de seus aplicativos .NET. Além disso, a API permite aplicar diferentes tipos de compactação a imagens, incluindo PNG, JPEG e TIFF. Para usar a API, você pode baixar sua DLL ou instalá-la usando NuGet.

Install-Package Aspose.Imaging

Comprimir imagens PNG em C#

Para imagens PNG, você pode definir o nível de compactação de 0 a 9, onde 9 é a compactação máxima e 0 é o modo de armazenamento. A seguir estão as etapas para compactar uma imagem PNG usando Aspose.Imaging para .NET.

O exemplo de código a seguir mostra como compactar imagens PNG usando C#.

// O caminho para o diretório de documentos.
string dataDir = RunExamples.GetDataDir_PNG();
 
// Carregar uma imagem do arquivo (ou stream)
using (Image image = Image.Load(dataDir + "aspose_logo.png"))
{
    // Faça um loop sobre o possível intervalo de CompressionLevel
    for (int i = 0; i <= 9; i++)
    {
        // Crie uma instância de PngOptions para cada PNG resultante, defina CompressionLevel e salve o resultado no disco
        PngOptions options = new PngOptions();
        options.CompressionLevel = i;
        image.Save(i + "_out.png", options);
    }
}

Comprimir imagens JPEG em C#

Para lidar com imagens JPEG, Aspose.Imaging for .NET fornece a classe JpegOptions que oferece os seguintes tipos de compactação para imagens JPEG.

  • Linha de base
  • Progressivo
  • Sem perdas
  • JPEGL

A seguir estão as etapas para compactar imagens JPEG usando um dos tipos de compactação mencionados acima.

O exemplo de código a seguir mostra como compactar uma imagem JPEG usando C#.

// O caminho para o diretório de documentos.
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);
}

Aplicar compactação em imagens TIFF em C#

Aspose.Imaging for .NET fornece uma ampla gama de tipos de compactação para imagens TIFF, incluindo LZW, Packbits, CCIT Fax 3 e 4 e etc. Você pode selecionar o tipo apropriado de acordo com suas necessidades. A seguir estão as etapas para compactar uma imagem TIFF.

O exemplo de código a seguir mostra como compactar imagens TIFF usando C#.

// O caminho para o diretório de documentos.
string dataDir = RunExamples.GetDataDir_ModifyingAndConvertingImages();

// Carregar uma imagem por meio do local do caminho do arquivo ou fluxo
Image image = Image.Load(dataDir + "SampleTiff.tiff");

// Crie uma instância de TiffOptions para a imagem resultante
TiffOptions outputSettings = new TiffOptions(TiffExpectedFormat.Default);

// Definir BitsPerSample, Compressão, modo fotométrico e paleta de tons de cinza
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);

Conclusão

Neste post, você aprendeu como compactar imagens PNG, JPEG e TIFF usando C#. Várias técnicas de compressão suportadas também foram listadas para imagens JPEG e TIFF. Você pode explorar mais sobre a API de processamento de imagem .NET usando documentação.

Veja também

Informações: Usando o conversor Aspose JPG para PPT ou PNG para PPT, você pode gerar apresentações em PowerPoint a partir de imagens simples.