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
- Comprimir imagens PNG em C#
- Comprimir imagens JPEG em C#
- Aplicar compactação a imagens TIFF em 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.
- Carregue a imagem usando a classe Image.
- Crie um objeto da classe PngOptions.
- Defina o nível de compactação usando a propriedade PngOptions.CompressionLevel.
- Salve a imagem usando o método Image.Save(String, PngOptions).
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.
- Carregue a imagem JPEG usando a classe Image.
- Crie um objeto da classe JpegOptions.
- Defina o modo de cor usando a propriedade JpegOptions.ColorType.
- Defina o tipo de compactação usando a propriedade JpegOptions.CompressionType.
- Salve a imagem usando o método Image.Save(String, JpegOptions).
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.
- Carregue a imagem TIFF usando a classe Image.
- Crie um objeto de TiffOptions e inicialize-o com o valor de enumeração TiffExpectedFormat.Default.
- Defina o modo BitsPerSample, Compression, Photometric e Palette para a imagem Tiff.
- Salve a imagem usando o método Image.Save(String, TiffOptions).
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.