redimensionar imagens em c#

Muitas vezes obtemos imagens com o tamanho que não atende aos nossos requisitos, portanto, temos que redimensioná-las de acordo. Neste artigo, você aprenderá como redimensionar imagens usando C# em seus aplicativos .NET. Além disso, você aprenderá como redimensionar imagens raster e imagens vetoriais explicitamente.

API .NET para redimensionar imagens

Para redimensionar imagens. usaremos Aspose.Imaging for .NET. É uma poderosa API de processamento de imagens para manipular vários tipos de imagens raster e vetoriais. Você pode baixar a DLL da API ou instalá-la via NuGet.

PM> Install-Package Aspose.Imaging

Redimensionar imagens raster usando C#

Existem dois métodos para redimensionar imagens raster (PNG, GIF, JPEG, etc.): redimensionamento simples e redimensionamento usando um tipo de redimensionamento. No redimensionamento simples, as imagens são redimensionadas fornecendo a altura e a largura. Considerando que, o segundo método usa diferentes técnicas de redimensionamento. As seções a seguir demonstram como redimensionar uma imagem usando cada um dos métodos mencionados acima.

Redimensionamento simples de uma imagem

A seguir estão as etapas para redimensionar uma imagem em C#.

O exemplo de código a seguir mostra como redimensionar uma imagem em aplicativos .NET.

// Carregar imagem
using (Image image = Image.Load("aspose-logo.jpg"))
{
    // Redimensione a imagem e salve a imagem redimensionada
    image.Resize(300, 300);
    image.Save("SimpleResizing_out.jpg");
}

Redimensionar imagem usando um tipo de redimensionamento

O enum ResizeType é usado para especificar técnicas de redimensionamento que você pode usar de acordo com seus requisitos. A lista completa de tipos de redimensionamento suportados está disponível aqui. A seguir estão as etapas para redimensionar uma imagem usando uma técnica de redimensionamento específica.

O exemplo de código a seguir redimensiona a imagem usando uma técnica de redimensionamento específica.

// Carregar imagem
using (Image image = Image.Load("aspose-logo.jpg"))
{
    // Redimensione a imagem e salve a imagem redimensionada
    image.Resize(300, 300, ResizeType.LanczosResample);
    image.Save("SimpleResizing_out.jpg");
}

Redimensionar a imagem proporcionalmente

Redimensionar imagens especificando altura e largura pode resultar em uma imagem reduzida ou dimensionada. Portanto, você deve calcular a proporção manualmente. No entanto, qualquer erro de cálculo na proporção pode levar a uma imagem esticada. Para evitar esses problemas, você pode usar o redimensionamento proporcional. A seguir estão os passos para conseguir isso.

Caso você queira usar qualquer tipo de redimensionamento específico ao redimensionar imagens proporcionalmente, use os métodos de sobrecarga Image.ResizeWidthProportionally(Int32, ResizeType) e Image.ResizeHeightProportionally(Int32, ResizeType).

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

// Carregar imagem
using (Image image = Image.Load("aspose-logo.png"))
{
    // Dados de imagem em cache
    if (!image.IsCached)
    {
        image.CacheData();
    }
    
    // Especificar largura e altura
    int newWidth = image.Width / 2;
    image.ResizeWidthProportionally(newWidth);
    int newHeight = image.Height / 2;
    image.ResizeHeightProportionally(newHeight);
    
    // Salvar imagem
    image.Save("ResizeImageProportionally_out.png");
}

Redimensionar imagens vetoriais em C#

Aspose.Imaging for .NET também permite redimensionar as imagens vetoriais e salvá-las em um formato de imagem raster. O exemplo de código a seguir mostra como redimensionar uma imagem SVG e salvar a saída no formato PNG.

// Carregar imagem
using (Image image = Image.Load("image.svg"))
 {
    // Redimensionar imagem como PNG
    image.Resize(image.Width * 10,image.Height * 15);
    image.Save("Logotype_10_15.png", new PngOptions()
    {
        VectorRasterizationOptions = new SvgRasterizationOptions()
    });
 }

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária gratuita para usar o Aspose.Imaging para .NET sem limitações de avaliação.

Conclusão

Neste artigo, você aprendeu como redimensionar imagens programaticamente usando C#. Além disso, os exemplos de código demonstraram como realizar redimensionamento simples de imagens ou redimensionamento usando um tipo específico. Também abordamos como evitar o cálculo manual da proporção ao redimensionar imagens. Além disso, o redimensionamento de imagens vetoriais também é discutido no final. Além disso, você pode explorar mais sobre a API de processamento de imagem .NET usando documentação. Além disso, você pode baixar o pacote completo de amostras de código-fonte do GitHub. Em caso de dúvidas, você pode entrar em contato conosco em nosso fórum.

Veja também