- [API-installatie voor beeldcompressie][3]
- [PNG-bestandsgrootte verkleinen met C#][4]
- [API voor beeldcompressie - geavanceerde opties][5]
API-installatie voor afbeeldingscompressie
Deze bibliotheek biedt een breed scala aan methoden en eigenschappen voor het manipuleren en verwerken van verschillende afbeeldingsbestandsindelingen, zoals [JPEG][29], [TIFF][30] en meer. Er zijn twee manieren om deze API in uw .NET-project te installeren. Daarom kunt u de DLL-bestanden [downloaden][6] of de volgende opdracht uitvoeren in de [NuGet][7] pakketbeheerder.
Install-Package Aspose.Imaging
Hoe PNG-bestandsgrootte te verkleinen met C#
Je kunt [hier][8] een enorme stapel methoden en eigenschappen zien om de afbeeldingsbestandsindelingen te comprimeren. Daarom zullen we stappen en het codefragment schrijven om het PNG-bestand programmatisch te comprimeren. Volg de volgende stappen:
- Laad de PNG-bronafbeelding door de methode [Load][9] aan te roepen.
- Gebruik de methode [Opslaan][10] om de gecomprimeerde afbeelding in PNG-indeling op te slaan.
- Stel een waarde in voor de eigenschap [Progressive][11] die aangeeft of deze PngOptions progressief is.
- [IndexedColor][12] vertegenwoordigt het kleurtype waarbij elke pixel een paletindex is.
- Wijs de waarde van [CompressionLevel][13] toe om de maximale compressie in te stellen.
- De methode [GetCloseImagePalette][14] haalt een kleurenpalet uit de rasterafbeelding (palletiseert afbeelding) voor het geval de afbeelding er geen heeft. Als er een palet bestaat, wordt dit gebruikt in plaats van berekeningen uit te voeren.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
// Load the source PNG image by calling the Load method using (Image image = Image.Load("image.png")) { // Invoke the Save method to save the compressed image in PNG format image.Save(out.png, new ImageOptions.PngOptions() { // Set a value of Progressive property that indicates whether this PngOptions is progressive. Progressive = true, // IndexedColor represents the color type where each pixel is a palette index ColorType = FileFormats.Png.PngColorType.IndexedColor, // Assign the value of CompressionLevel to set the maximum compression CompressionLevel = 9, // GetCloseImagePalette method will get color palette from raster image (palletizes image) in case the image does not have one. In case palette exists it will be used instead performing calculations. Palette = ColorPaletteHelper.GetCloseImagePalette((RasterImage)image, 256, PaletteMiningMethod.Histogram) }); }
API voor beeldcompressie - geavanceerde opties
In het vorige gedeelte hebben we geleerd hoe je PNG-bestandsgrootte kunt verkleinen met C#. Laten we nu eens kijken naar enkele andere prominente methoden en eigenschappen van deze beeldcompressie-API. In deze sectie zullen we een aangepaste API-aanroep doen om programmatisch een PNG-bestand te maken. U kunt de onderstaande stappen en het onderstaande codefragment volgen:
- Initialiseer een instantie van de klasse [PngImage][15] die een PNG-afbeelding van 100x100 px maakt.
- De methode [LinearGradientBrush][16] kapselt een penseel in met een lineair verloop.
- Initialiseert een nieuwe instantie van de structuur [Punt][17] met de opgegeven coördinaten.
- Instantiseer een instantie van de klasse [Graphics][18] die de grafische weergave vertegenwoordigt volgens de grafische engine die in de huidige assembly wordt gebruikt.
- Vul de afbeelding met het blauw-transparante verloop met de methode [FillRectangle][19].
- Maak een object van de klasse [PngOptions][20].
- Stel een waarde in voor de eigenschap [Progressive][11] die aangeeft of deze PngOptions progressief is.
- U kunt de horizontale en verticale resolutie instellen op 96 pixels per inch door de klasse [ResolutionSetting][21] te initialiseren.
- Stel het kleurtype in door een waarde toe te wijzen aan de eigenschap [ColorType][22].
- Wijs een waarde toe aan de eigenschap [CompressionLevel][13] om het maximale compressieniveau in te stellen.
- De eigenschap [FilterType][23] stelt het filtertype in dat wordt gebruikt tijdens het opslaan van PNG-bestanden.
- Stel het aantal bits per kanaal in door een waarde toe te wijzen aan de eigenschap [BitDepth][24].
- Sla op in een bestand door de methode [Opslaan][10] aan te roepen.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
// Initialize an instance of PngImage class that creates a PNG image of 100x100 px. using (Aspose.Imaging.FileFormats.Png.PngImage pngImage = new Aspose.Imaging.FileFormats.Png.PngImage(100, 100)) { // LinearGradientBrush method encapsulates a Brush with a linear gradient Aspose.Imaging.Brushes.LinearGradientBrush gradientBrush = new Aspose.Imaging.Brushes.LinearGradientBrush( // Initializes a new instance of the Point structure with the specified coordinates. new Aspose.Imaging.Point(0, 0), new Aspose.Imaging.Point(pngImage.Width, pngImage.Height), Aspose.Imaging.Color.Blue, Aspose.Imaging.Color.Transparent); // Intantiate an instance of Graphics class that represents the graphics according to the graphics engine used in the current assembly. Aspose.Imaging.Graphics graphics = new Aspose.Imaging.Graphics(pngImage); // Fill the image with the blue-transparent gradient with FillRectangle method . graphics.FillRectangle(gradientBrush, pngImage.Bounds); // Create an object of the PngOptions class Aspose.Imaging.ImageOptions.PngOptions saveOptions = new Aspose.Imaging.ImageOptions.PngOptions(); // sets a value of Progressive property that indicates whether this PngOptions is progressive. saveOptions.Progressive = true; // Set the horizontal and vertical resolution to 96 pixels per inch by initializing the ResolutionSetting class. saveOptions.ResolutionSettings = new Aspose.Imaging.ResolutionSetting(96.0, 96.0); // set the type of the color by assiging a value to the ColorType property . saveOptions.ColorType = Imaging.FileFormats.Png.PngColorType.TruecolorWithAlpha; // Assign a value to the CompressionLevel property to set the maximum level of compression. saveOptions.CompressionLevel = 9; // FilterType property sets the filter type used during png file save process. saveOptions.FilterType = Aspose.Imaging.FileFormats.Png.PngFilterType.Adaptive; // set the number of bits per channel by assiging a value to the BitDepth property. saveOptions.BitDepth = 8; // Save to a file by calling the Save method. pngImage.Save( "output.png", saveOptions); }
Ontvang een gratis licentie
U kunt een [gratis tijdelijke licentie][25] krijgen om de API zonder evaluatiebeperkingen uit te proberen.
Opsommen
We kunnen deze blogpost hier beëindigen. We hopen dat je hebt geleerd hoe je PNG-bestanden programmatisch kunt verkleinen met C#. Daarnaast hebben we enkele andere geavanceerde methoden van deze afbeeldingscompressie-API doorlopen, waarbij we een geoptimaliseerd PNG-bestand hebben gemaakt. U kunt deze [link][26] echter bezoeken voor meer methoden en eigenschappen met betrekking tot het PNG-bestandsformaat. Sla vooral de [documentatie][1] van deze .NET-bibliotheek niet over om het ecosysteem te leren kennen. We zullen in toekomstige blogposts over andere nuttige onderwerpen schrijven. Houd daarom contact met [conholdate.com][27] voor updates.
Een vraag stellen
U kunt uw vragen of opmerkingen aan ons doorgeven op ons [forum][28].
Veelgestelde vragen
Hoe PNG-afbeelding comprimeren in C#? Installeer deze [.NET-beeldcompressie-API][1] om PNG-bestandsindelingen te comprimeren en te manipuleren. Het biedt methoden en eigenschappen om andere populaire bestandsindelingen voor afbeeldingen te comprimeren, zoals [JPEG][29], [TIFF][30] en meer. Hoe de grootte van het afbeeldingsbestand voor PNG-indeling minimaliseren? Met deze [methode][14] kunt u de PNG-bestandsgrootte programmatisch verkleinen met behulp van C#. Bovendien kunt u de API-aanroep configureren volgens uw vereisten. Hoe het formaat van een PNG-afbeelding wijzigen in C#-codevoorbeeld? Volg deze [link][31] om meer te weten te komen over het codefragment dat het formaat van een PNG-afbeelding programmatisch wijzigt. Deze .NET API is krachtig en biedt een breed scala aan methoden en eigenschappen.
Zie ook
- [XML converteren naar Excel met C#][32]
- [Excel converteren naar PDF in C#][33]
- [MS Word-documenten maken in C#][34] [1]: https://products.aspose.com/imaging/net/ [2]: https://docs.fileformat.com/image/png/ [3]: #Image-compression-API-installation [4]: #How-to-Reduce-PNG-file-size-using-Csharp [5]: #Image-compression-API—advance-options [6]: https://releases.aspose.com/cells/net// [7]: https://www.nuget.org/packages/Aspose.Cells/ [8]: https://reference.aspose.com/imaging/net/aspose.imaging/image/ [9]: https://reference.aspose.com/imaging/net/aspose.imaging/image/load/ [10]: https://reference.aspose.com/imaging/net/aspose.imaging/image/save/#save_3 [11]: https://reference.aspose.com/imaging/net/aspose.imaging.imageoptions/pngoptions/progressive/ [12]: https://reference.aspose.com/imaging/net/aspose.imaging.fileformats.png/pngcolortype/ [13]: https://reference.aspose.com/imaging/net/aspose.imaging.imageoptions/pngoptions/compressionlevel/ [14]: https://reference.aspose.com/imaging/net/aspose.imaging/colorpalettehelper/getcloseimagepalette/ [15]: https://reference.aspose.com/imaging/net/aspose.imaging.fileformats.png/pngimage/ [16]: https://reference.aspose.com/imaging/net/aspose.imaging.brushes/lineargradientbrush/ [17]: https://reference.aspose.com/imaging/net/aspose.imaging/point/point/ [18]: https://reference.aspose.com/imaging/net/aspose.imaging/graphics/graphics/ [19]: https://reference.aspose.com/imaging/net/aspose.imaging/graphics/fillrectangle/ [20]: https://reference.aspose.com/imaging/net/aspose.imaging.imageoptions/pngoptions/ [21]: https://reference.aspose.com/imaging/net/aspose.imaging/imageoptionsbase/resolutionsettings/ [22]: https://reference.aspose.com/imaging/net/aspose.imaging.imageoptions/pngoptions/colortype/ [23]: https://reference.aspose.com/imaging/net/aspose.imaging.imageoptions/pngoptions/filtertype/ [24]: https://reference.aspose.com/imaging/net/aspose.imaging.imageoptions/pngoptions/bitdepth/ [25]: https://purchase.conholdate.com/temporary-license [26]: https://docs.aspose.com/imaging/net/manipulating-png-images/ [27]: https://docs.aspose.com/imaging/net/ [28]: https://forum.conholdate.com/ [29]: https://docs.fileformat.com/image/jpeg/ [30]: https://docs.fileformat.com/image/tiff/ [31]: https://docs.aspose.com/imaging/net/manipulating-png-images/ [32]: https://blog.conholdate.com/nl/total/how-to-convert-xml-to-excel-using-csharp/ [33]: https://blog.conholdate.com/nl/total/convert-excel-to-pdf-in-csharp/ [34]: https://blog.conholdate.com/nl/total/create-ms-word-documents-in-csharp/