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
- Redimensionar imagens raster
- Redimensionar a imagem proporcionalmente
- Redimensionando imagens vetoriais
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#.
- Primeiro, carregue o arquivo de imagem usando a classe Image.
- Em seguida, redimensione a imagem chamando o método Image.Resize(Int32, Int32).
- Finalmente, salve a imagem redimensionada usando o método Image.Save(string).
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.
- Primeiro, carregue a imagem usando a classe Image.
- Em seguida, redimensione a imagem chamando o método Image.Resize(Int32, Int32, ResizeType).
- Finalmente, salve a imagem redimensionada usando o método Image.Save(string).
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.
- Primeiro, carregue o arquivo de imagem usando a classe Image.
- Em seguida, armazene em cache os dados da imagem usando o método Image.CacheData().
- Especifique a nova altura e largura da imagem.
- Calcule os valores de proporção usando o método Image.ResizeWidthProportionally(Int32) e Image.ResizeHeightProportionally(Int32).
- Finalmente, salve a imagem redimensionada usando o método Image.Save(string).
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.