![redimensionner les images en c#](images/Resize-images.jpg#center)
Nous obtenons souvent des images dont la taille ne répond pas à nos exigences, nous devons donc les redimensionner en conséquence. Dans cet article, vous apprendrez à redimensionner des images à l’aide de C# à partir de vos applications .NET. De plus, vous apprendrez à redimensionner explicitement les images raster et les images vectorielles.
- API .NET pour redimensionner les images
- Redimensionner les images raster
- Redimensionner l’image proportionnellement
- Redimensionner les images vectorielles
API .NET pour redimensionner les images
Pour redimensionner les images. nous utiliserons Aspose.Imaging for .NET. Il s’agit d’une puissante API de traitement d’images permettant de manipuler divers types d’images raster et vectorielles. Vous pouvez télécharger la DLL de l’API ou l’installer via NuGet.
PM> Install-Package Aspose.Imaging
Redimensionner les images raster à l’aide de C#
Il existe deux méthodes pour redimensionner les images raster (PNG, GIF, JPEG, etc.) : le redimensionnement simple et le redimensionnement à l’aide d’un type de redimensionnement. Dans le redimensionnement simple, les images sont redimensionnées en fournissant la hauteur et la largeur. Alors que la deuxième méthode utilise différentes techniques de redimensionnement. Les sections suivantes montrent comment redimensionner une image à l’aide de chacune des méthodes mentionnées ci-dessus.
Redimensionnement simple d’une image
Voici les étapes pour redimensionner une image en C#.
- Tout d’abord, chargez le fichier image à l’aide de la classe Image.
- Ensuite, redimensionnez l’image en appelant la méthode Image.Resize(Int32, Int32).
- Enfin, enregistrez l’image redimensionnée à l’aide de la méthode Image.Save(string).
L’exemple de code suivant montre comment redimensionner une image dans les applications .NET.
// Charger l'image
using (Image image = Image.Load("aspose-logo.jpg"))
{
// Redimensionner l'image et enregistrer l'image redimensionnée
image.Resize(300, 300);
image.Save("SimpleResizing_out.jpg");
}
Redimensionner l’image à l’aide d’un type de redimensionnement
L’énumération ResizeType est utilisée pour spécifier les techniques de redimensionnement que vous pouvez utiliser selon vos besoins. La liste complète des types de redimensionnement pris en charge est disponible ici. Voici les étapes pour redimensionner une image à l’aide d’une technique de redimensionnement particulière.
- Tout d’abord, chargez l’image en utilisant la classe Image.
- Ensuite, redimensionnez l’image en appelant la méthode Image.Resize(Int32, Int32, ResizeType).
- Enfin, enregistrez l’image redimensionnée à l’aide de la méthode Image.Save(string).
L’exemple de code suivant redimensionne l’image à l’aide d’une technique de redimensionnement particulière.
// Charger l'image
using (Image image = Image.Load("aspose-logo.jpg"))
{
// Redimensionner l'image et enregistrer l'image redimensionnée
image.Resize(300, 300, ResizeType.LanczosResample);
image.Save("SimpleResizing_out.jpg");
}
Redimensionner l’image proportionnellement
Le redimensionnement des images en spécifiant la hauteur et la largeur peut entraîner une image réduite ou mise à l’échelle. Par conséquent, vous devez calculer le rapport d’aspect manuellement. Cependant, toute erreur de calcul dans le rapport d’aspect peut conduire à une image étirée. Pour éviter de tels problèmes, vous pouvez utiliser le redimensionnement proportionnel. Voici les étapes pour y parvenir.
- Tout d’abord, chargez le fichier image à l’aide de la classe Image.
- Ensuite, mettez en cache les données d’image à l’aide de la méthode Image.CacheData().
- Spécifiez la nouvelle hauteur et largeur de l’image.
- Calculez les valeurs de proportion à l’aide des méthodes Image.ResizeWidthProportionally(Int32) et Image.ResizeHeightProportionally(Int32).
- Enfin, enregistrez l’image redimensionnée à l’aide de la méthode Image.Save(string).
Si vous souhaitez utiliser un type de redimensionnement particulier tout en redimensionnant les images proportionnellement, utilisez les méthodes de surcharge Image.ResizeWidthProportionally(Int32, ResizeType) et Image.ResizeHeightProportionally(Int32, ResizeType).
L’exemple de code suivant montre comment redimensionner une image proportionnellement à l’aide de C#.
// Charger l'image
using (Image image = Image.Load("aspose-logo.png"))
{
// Données d'image en cache
if (!image.IsCached)
{
image.CacheData();
}
// Spécifiez la largeur et la hauteur
int newWidth = image.Width / 2;
image.ResizeWidthProportionally(newWidth);
int newHeight = image.Height / 2;
image.ResizeHeightProportionally(newHeight);
// Enregistrer l'image
image.Save("ResizeImageProportionally_out.png");
}
Redimensionner les images vectorielles en C#
Aspose.Imaging for .NET vous permet également de redimensionner les images vectorielles et de les enregistrer dans un format d’image raster. L’exemple de code suivant montre comment redimensionner une image SVG et enregistrer la sortie au format PNG.
// Charger l'image
using (Image image = Image.Load("image.svg"))
{
// Redimensionner l'image au format PNG
image.Resize(image.Width * 10,image.Height * 15);
image.Save("Logotype_10_15.png", new PngOptions()
{
VectorRasterizationOptions = new SvgRasterizationOptions()
});
}
Obtenez une licence API gratuite
Vous pouvez obtenir une licence temporaire gratuite pour utiliser Aspose.Imaging for .NET sans limitations d’évaluation.
Conclusion
Dans cet article, vous avez appris à redimensionner des images par programmation à l’aide de C#. De plus, les exemples de code ont montré comment effectuer un redimensionnement simple des images ou un redimensionnement à l’aide d’un type particulier. Nous avons également expliqué comment éviter le calcul manuel du rapport d’aspect lors du redimensionnement des images. De plus, le redimensionnement des images vectorielles est également abordé à la fin. En outre, vous pouvez en savoir plus sur l’API de traitement d’image .NET à l’aide de documentation. Vous pouvez également télécharger le package complet d’exemples de code source à partir de GitHub. En cas de questions, vous pouvez nous contacter sur notre forum.