Convertir SVG en PNG en C#
Le format de fichier PNG prend en charge la compression d’image sans perte, ce qui le rend populaire auprès de ses utilisateurs. Il a deux utilisations principales : le World Wide Web et l’édition d’images. Il est largement utilisé pour transmettre des images sur le réseau, afficher des photos et des graphiques sur des pages web et les stocker dans des nuages. L’utilisation de SVG sur les pages web étant soumise à certaines restrictions, la conversion de SVG en PNG est parfois nécessaire. Avec Aspose.HTML, vous pouvez convertir SVG au format PNG de manière programmatique avec un contrôle total sur un large éventail de paramètres de conversion.
Dans cet article, vous trouverez des informations sur la conversion de SVG en PNG en utilisant les méthodes ConvertSVG() de la classe Converter et en appliquant les paramètres ImageSaveOptions et ICreateStreamProvider. Vous pouvez également essayer un convertisseur SVG en ligne pour tester les fonctionnalités de l’API Aspose.HTML et convertir des SVG à la volée.
Convertisseur SVG en ligne
Vous pouvez convertir SVG en d’autres formats avec l’API Aspose.HTML en temps réel. Veuillez charger SVG à partir du système de fichiers local, sélectionnez le format de sortie et exécutez l’exemple. Les options d’enregistrement sont définies par défaut. Vous recevrez immédiatement le résultat de la conversion dans un fichier séparé.
Si vous souhaitez convertir des images SVG en images PNG par programme, veuillez consulter les exemples de code C# suivants.
SVG vers PNG en une seule ligne de code
Les méthodes statiques de la classe Converter sont principalement utilisées comme moyen le plus simple de convertir un fichier SVG dans différents formats. Vous pouvez convertir SVG en PNG dans votre application C# en une seule ligne de code !
Dans l’exemple suivant, nous prenons un fichier SVG dans un système de fichiers local ( shapes.svg), le convertissons et l’enregistrons dans le système de fichiers local.
1// Convert SVG to PNG using C#
2
3// Invoke the ConvertSVG() method for SVG to PNG conversion
4Converter.ConvertSVG(Path.Combine(DataDir, "shapes.svg"), new ImageSaveOptions(), Path.Combine(OutputDir, "convert-with-single-line.png"));
Convertir SVG en PNG
La conversion d’un fichier vers un autre format à l’aide de la méthode ConvertSVG() est une séquence d’opérations parmi lesquelles le chargement et l’enregistrement de documents. Dans l’exemple suivant, nous créons un fichier SVG à partir du code.
- Préparer le code pour un document SVG.
- Créez un nouvel objet ImageSaveOptions. Par défaut, la propriété Format est PNG.
- Utilisez la méthode
ConvertSVG(
content
,baseUri
,options
,outputPath
) de la classe Converter pour enregistrer SVG en tant qu’image PNG.
Jetez un coup d’œil à l’extrait de code C# suivant, qui illustre le processus de conversion de SVG en PNG à l’aide d’Aspose.HTML for .NET.
1// Convert SVG to PNG in C#
2
3// Prepare SVG code
4string code = "<svg xmlns='http://www.w3.org/2000/svg'>" +
5 "<circle cx ='100' cy ='100' r ='60' fill='none' stroke='red' stroke-width='10' />" +
6 "</svg>";
7
8// Prepare a path to save the converted file
9string savePath = Path.Combine(OutputDir, "circle.png");
10
11// Create an instance of the ImageSaveOptions class
12ImageSaveOptions options = new ImageSaveOptions();
13
14// Convert SVG to PNG
15Converter.ConvertSVG(code, ".", options, savePath);
Vous pouvez télécharger les exemples complets et les fichiers de données sur GitHub.
Options d’enregistrement – ImageSaveOptions
Aspose.HTML permet de convertir SVG en PNG en utilisant des options d’enregistrement par défaut ou personnalisées. l’utilisation de ImageSaveOptions vous permet de personnaliser le processus de rendu. Vous pouvez spécifier le format de l’image, la taille de la page, les marges, la couleur d’arrière-plan, etc.
Property | Description |
---|---|
Compression | Sets Tagged Image File Format (TIFF) Compression. By default, this property is LZW. |
CSS | Gets a CssOptions object which is used for configuration of CSS properties processing. |
Format | Sets the ImageFormat (JPG, PNG, BMP, TIFF, or GIF). By default, this property is PNG. |
BackgroundColor | This property sets the color that will fill the background. By default, this property is Transparent. |
PageSetup | This property gets a page setup object and uses it for configuration output page-set. |
HorizontalResolution | Sets horizontal resolution for output images in pixels per inch. The default value is 300 dpi. |
VerticalResolution | Sets vertical resolution for output images in pixels per inch. The default value is 300 dpi. |
UseAntialiasing | This property sets the image rendering quality. Antialiasing is enabled by default. |
Text | Gets a TextOptions object which is used for configuration of text rendering. |
Convertir SVG en PNG en utilisant ImageSaveOptions
Pour convertir SVG en PNG en spécifiant ImageSaveOptions, vous devez suivre quelques étapes :
- Charger un fichier SVG en utilisant l’un des constructeurs SVGDocument() de la classe SVGDocument. ( flower1.svg).
- Créez un nouvel objet ImageSaveOptions et spécifiez les options d’enregistrement. Par défaut, la propriété Format est PNG.
- Utilisez la méthode ConvertSVG() pour sauvegarder le SVG en tant qu’image PNG. Vous devez passer les paramètres SVGDocument, ImageSaveOptions et le chemin du fichier de sortie à la méthode ConvertSVG() pour convertir le SVG en PNG.
L’extrait de code C# suivant montre comment convertir un SVG en PNG à l’aide d’options d’enregistrement personnalisées :
1// Convert SVG to PNG in C# with custom settings
2
3// Prepare a path to a source SVG file
4string documentPath = Path.Combine(DataDir, "flower1.svg");
5
6// Prepare a path to save the converted file
7string savePath = Path.Combine(OutputDir, "flower-options.png");
8
9// Initialize an SVG document from the file
10using SVGDocument document = new SVGDocument(documentPath);
11
12// Create an instance of the ImageSaveOptions class. Set up the SmoothingMode, resolutions, and change the background color to AliceBlue
13ImageSaveOptions options = new ImageSaveOptions()
14{
15 HorizontalResolution = 200,
16 VerticalResolution = 200,
17 BackgroundColor = System.Drawing.Color.AliceBlue,
18 UseAntialiasing = true,
19};
20
21// Convert SVG to PNG
22Converter.ConvertSVG(document, options, savePath);
Le constructeur
ImageSaveOptions() initialise une instance de la classe ImageSaveOptions qui est passée à la méthode ConvertSVG(). La méthode ConvertSVG() prend le document document
, les options options
, le chemin du fichier de sortie savePath
et effectue l’opération de conversion.
Dans l’exemple ci-dessus, nous utilisons :
- la propriété
BackgroundColor
définit la couleur de l’arrière-plan. La couleur d’arrière-plan par défaut estTransparent
; - les propriétés
HorizontalResolution
etVerticalResolution
définissent la résolution horizontale/verticale des images de sortie en pixels par pouce. Par défaut, ces propriétés sont de 300 dpi ; - propriété
UseAntialiasing
qui définit la qualité du rendu pour cette image. Cet exemple utiliseUseAntialiasing = true
pour un rendu de qualité.
Utilisez UseAntialiasing = true
lorsque vous souhaitez améliorer la qualité visuelle des formes, textes et images rendus dans votre application, en particulier lorsque la clarté et les bords lisses sont essentiels. L’activation de l’anticrénelage permet de lisser les bords irréguliers en mélangeant les couleurs des pixels autour des bords, ce qui donne un aspect plus doux et plus raffiné.
Bien que UseAntialiasing = true
offre une meilleure qualité visuelle, il peut aussi augmenter le temps de traitement. Pour les applications où la vitesse de rendu est une priorité, il peut être optimal de mettre UseAntialiasing = false
.
La figure illustre le fragment du fichier flower-options.png.
Fournisseurs de flux de sortie
S’il est nécessaire d’enregistrer des fichiers dans un espace de stockage distant (par exemple, un nuage, une base de données, etc.), vous pouvez mettre en œuvre l’interface ICreateStreamProvider afin de contrôler manuellement le processus de création de fichiers. Cette interface est conçue comme un objet de rappel pour créer un flux au début du document/de la page (en fonction du format de sortie) et libérer le flux créé au début après le rendu du document/de la page.
Aspose.HTML for .NET propose différents types de formats de sortie pour les opérations de rendu. Certains de ces formats produisent un seul fichier de sortie (par exemple, PDF, XPS), d’autres créent plusieurs fichiers (formats d’image – JPG, PNG, etc.)
L’exemple ci-dessous montre comment mettre en œuvre et utiliser votre propre MemoryStreamProvider dans l’application :
1// Implement a custom MemoryStream provider for advanced control over HTML rendering output streams
2
3class MemoryStreamProvider : Aspose.Html.IO.ICreateStreamProvider
4{
5 // List of MemoryStream objects created during the document rendering
6 public List<MemoryStream> Streams { get; } = new List<MemoryStream>();
7
8 public Stream GetStream(string name, string extension)
9 {
10 // This method is called when only one output stream is required, for instance for XPS, PDF or TIFF formats
11 MemoryStream result = new MemoryStream();
12 Streams.Add(result);
13 return result;
14 }
15
16 public Stream GetStream(string name, string extension, int page)
17 {
18 // This method is called when the creation of multiple output streams are required. For instance, during the rendering HTML to list of image files (JPG, PNG, etc.)
19 MemoryStream result = new MemoryStream();
20 Streams.Add(result);
21 return result;
22 }
23
24 public void ReleaseStream(Stream stream)
25 {
26 // Here you can release the stream filled with data and, for instance, flush it to the hard-drive
27 }
28
29 public void Dispose()
30 {
31 // Releasing resources
32 foreach (MemoryStream stream in Streams)
33 stream.Dispose();
34 }
35}
Le code C# suivant montre comment utiliser la classe MemoryStreamProvider et la bibliothèque Aspose.HTML for .NET pour convertir SVG en PNG et enregistrer le résultat dans un fichier.
1// Convert SVG to PNG in C# using memory stream
2
3// Create an instance of MemoryStreamProvider
4using MemoryStreamProvider streamProvider = new MemoryStreamProvider();
5
6// Prepare SVG code
7string code = "<svg xmlns='http://www.w3.org/2000/svg'>" +
8 "<circle cx='50' cy='50' r='40' stroke='black' stroke-width='3' fill='red' />" +
9 "</svg>";
10
11// Convert SVG to PNG using the MemoryStreamProvider
12Converter.ConvertSVG(code, ".", new ImageSaveOptions(), streamProvider);
13
14// Get access to the memory stream that contains the result data
15MemoryStream memory = streamProvider.Streams.First();
16memory.Seek(0, SeekOrigin.Begin);
17
18// Flush the result data to the output file
19using (FileStream fs = File.Create(Path.Combine(OutputDir, "stream-provider.png")))
20{
21 memory.CopyTo(fs);
22}
Pour en savoir plus sur ImageSaveOptions, veuillez lire l’article Fine-Tuning Converters.
Vérifiez la qualité de la conversion SVG vers PNG avec notre Convertisseur SVG vers PNG en ligne. Téléchargez, convertissez vos fichiers et obtenez des résultats en quelques secondes. Essayez gratuitement notre convertisseur SVG vers PNG !
Téléchargez la bibliothèque Aspose.HTML for .NET, qui vous permet de convertir avec succès, rapidement et facilement vos documents HTML, MHTML, EPUB, SVG et Markdown vers les formats les plus populaires.
Vous pouvez télécharger les exemples complets et les fichiers de données sur GitHub.