Réduire la taille du fichier PNG à l'aide de C#

Réduire la taille du fichier PNG à l’aide de C#

Le stockage système est un sujet critique à l’ère moderne de la technologie. La quantité de données augmente chaque jour et la représentation visuelle des fichiers de données a gagné en popularité. Cependant, il existe de nombreuses façons de compresser les formats de fichiers d’image, mais la qualité de l’image ne doit pas être compromise. Par conséquent, nous utiliserons cette API de compression d’image .NET pour compresser les images PNG. Dans cet article de blog, nous apprendrons comment réduire la taille du fichier PNG à l’aide de C# par programmation.

Nous aborderons les points suivants dans cet article :

Installation de l’API de compression d’images

Cette bibliothèque offre un large éventail de méthodes et de propriétés pour manipuler et traiter divers formats de fichiers image tels que JPEG, TIFF, etc. Il existe deux façons d’installer cette API dans votre projet .NET.

Par conséquent, vous pouvez soit télécharger les fichiers DLL, soit exécuter la commande suivante dans le gestionnaire de packages NuGet.

Install-Package Aspose.Imaging

Comment réduire la taille du fichier PNG en utilisant C#

Vous pouvez voir une énorme pile de méthodes et de propriétés ici pour compresser les formats de fichiers image. Par conséquent, nous allons écrire des étapes et l’extrait de code pour compresser le fichier PNG par programme.

Suivez les étapes suivantes :

  1. Chargez l’image PNG source en appelant la méthode Load.
  2. Appelez la méthode Save pour enregistrer l’image compressée au format PNG.
  3. Définissez une valeur de la propriété Progressive qui indique si ce PngOptions est progressif.
  4. IndexedColor représente le type de couleur où chaque pixel est un index de palette.
  5. Attribuez la valeur de CompressionLevel pour définir la compression maximale.
  6. La méthode GetCloseImagePalette obtiendra une palette de couleurs à partir de l’image raster (palettise l’image) au cas où l’image n’en aurait pas. Si une palette existe, elle sera utilisée au lieu d’effectuer des calculs.
// Charger l'image PNG source en appelant la méthode Load 
        using (Image image = Image.Load("image.png"))
        {
        // Appelez la méthode Save pour enregistrer l'image compressée au format PNG  
            image.Save(out.png, new ImageOptions.PngOptions()
            {
            // Définissez une valeur de propriété Progressive qui indique si ce PngOptions est progressif.
                Progressive = true,
            // IndexedColor représente le type de couleur où chaque pixel est un index de palette 
                ColorType = FileFormats.Png.PngColorType.IndexedColor,
            // Attribuez la valeur de CompressionLevel pour définir la compression maximale 
                CompressionLevel = 9,
            // La méthode GetCloseImagePalette obtiendra la palette de couleurs de l'image raster (palettise l'image) au cas où l'image n'en aurait pas. Si la palette existe, elle sera utilisée à la place pour effectuer des calculs. 
                Palette = ColorPaletteHelper.GetCloseImagePalette((RasterImage)image, 256, PaletteMiningMethod.Histogram)
            });
        }

API de compression d’image - options avancées

Dans la section précédente, nous avons appris à réduire la taille du fichier PNG à l’aide de C#. Explorons maintenant d’autres méthodes et propriétés importantes de cette API de compression d’image. Dans cette section, nous allons effectuer un appel d’API personnalisé pour créer un fichier PNG par programmation.

Vous pouvez suivre les étapes et l’extrait de code mentionnés ci-dessous :

  1. Initialisez une instance de la classe PngImage qui crée une image PNG de 100x100 px.
  2. La méthode LinearGradientBrush encapsule un Brush avec un dégradé linéaire.
  3. Initialise une nouvelle instance de la structure Point avec les coordonnées spécifiées.
  4. Instanciez une instance de la classe Graphics qui représente les graphiques en fonction du moteur graphique utilisé dans l’assembly actuel.
  5. Remplissez l’image avec le dégradé bleu-transparent avec la méthode FillRectangle.
  6. Créez un objet de la classe PngOptions.
  7. Définissez une valeur de la propriété Progressive qui indique si ce PngOptions est progressif.
  8. Vous pouvez régler la résolution horizontale et verticale sur 96 pixels par pouce en initialisant la classe ResolutionSetting.
  9. Définissez le type de couleur en attribuant une valeur à la propriété ColorType.
  10. Attribuez une valeur à la propriété CompressionLevel pour définir le niveau maximal de compression.
  11. La propriété FilterType définit le type de filtre utilisé lors du processus d’enregistrement du fichier PNG.
  12. Définissez le nombre de bits par canal en attribuant une valeur à la propriété BitDepth.
  13. Enregistrez dans un fichier en appelant la méthode Save.

    // Initialisez une instance de la classe PngImage qui crée une image PNG de 100x100 px. 
    using (Aspose.Imaging.FileFormats.Png.PngImage pngImage = new Aspose.Imaging.FileFormats.Png.PngImage(100, 100))
    {
        // La méthode LinearGradientBrush encapsule un pinceau avec un dégradé linéaire 
        Aspose.Imaging.Brushes.LinearGradientBrush gradientBrush = new Aspose.Imaging.Brushes.LinearGradientBrush(
                // Initialise une nouvelle instance de la structure Point avec les coordonnées spécifiées. 
                new Aspose.Imaging.Point(0, 0),
                new Aspose.Imaging.Point(pngImage.Width, pngImage.Height),
                Aspose.Imaging.Color.Blue,
                Aspose.Imaging.Color.Transparent);
        // Intancier une instance de la classe Graphics qui représente les graphiques en fonction du moteur graphique utilisé dans l'assembly actuel.
        Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(pngImage);

        // Remplissez l'image avec le dégradé bleu-transparent avec la méthode FillRectangle . 
        graphics.FillRectangle(gradientBrush, pngImage.Bounds);
        // Créer un objet de la classe PngOptions 
        Aspose.Imaging.ImageOptions.PngOptions saveOptions = new Aspose.Imaging.ImageOptions.PngOptions();

        // définit une valeur de propriété Progressive qui indique si ce PngOptions est progressif. 
        saveOptions.Progressive = true;

        // Définissez la résolution horizontale et verticale sur 96 pixels par pouce en initialisant la classe ResolutionSetting. 
        saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0);

        // définissez le type de couleur en attribuant une valeur à la propriété ColorType .
        saveOptions.ColorType = Imaging.FileFormats.Png.PngColorType.TruecolorWithAlpha;

        // Attribuez une valeur à la propriété CompressionLevel pour définir le niveau maximal de compression. 
        saveOptions.CompressionLevel = 9;

        // La propriété FilterType définit le type de filtre utilisé lors du processus d'enregistrement du fichier png.
        saveOptions.FilterType = Aspose.Imaging.FileFormats.Png.PngFilterType.Adaptive;

        // définissez le nombre de bits par canal en attribuant une valeur à la propriété BitDepth.
        saveOptions.BitDepth = 8;

        // Enregistrez dans un fichier en appelant la méthode Save. 
        pngImage.Save( "output.png", saveOptions);
    }

Vous pouvez voir la sortie dans l’image ci-dessous :

API de compression d'images

Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite pour essayer l’API sans limitation d’évaluation.

Résumé

Nous pouvons terminer ce billet de blog ici. Nous espérons que vous avez appris à réduire la taille du fichier PNG à l’aide de C# par programmation. De plus, nous avons parcouru d’autres méthodes avancées de cette API de compression d’image où nous avons créé un fichier PNG optimisé. Cependant, vous pouvez visiter ce lien pour d’autres méthodes et propriétés concernant le format de fichier PNG. Surtout, ne sautez pas la documentation de cette bibliothèque .NET pour en connaître l’écosystème. Nous écrirons sur d’autres sujets utiles dans les prochains articles de blog. Par conséquent, restez en contact avec conholdate.com pour les mises à jour.

poser une question

Vous pouvez nous faire part de vos questions ou requêtes sur notre forum.

FAQ

Comment compresser une image PNG en C# ?

Installez cette API de compression d’image .NET pour compresser et manipuler les formats de fichiers PNG. Il offre des méthodes et des propriétés pour compresser d’autres formats de fichiers image populaires tels que JPEG, TIFF, et plus encore.

Comment minimiser la taille du fichier image pour le format PNG ?

Cette méthode vous permet de réduire la taille du fichier PNG à l’aide de C# par programmation. De plus, vous pouvez configurer l’appel API selon vos besoins.

Comment redimensionner une image PNG dans un exemple de code C# ?

Suivez ce lien pour connaître l’extrait de code qui redimensionne une image PNG par programmation. Cette API .NET est puissante et offre un large éventail de méthodes et de propriétés.

Voir également