Convertir SVG en images en C# – JPG, PNG, WebP, BMP, TIFF et GIF

Pour convertir SVG en PNG, JPG, WebP, BMP, TIFF ou GIF en C#, chargez le SVG avec SVGDocument, configurez ImageSaveOptions, définissez le Format de sortie si nécessaire et appelez Converter.ConvertSVG(). Utilisez RenderTo() avec ImageDevice si vous avez besoin d’un contrôle explicite du rendu.

Dans cet article, vous apprendrez à convertir SVG vers des formats d’image comme JPG, PNG, WebP, BMP, TIFF et GIF. La conversion en image est utile pour le développement web, le design, la photographie et d’autres usages. Le choix du format dépend de la destination: impression, envoi par e-mail ou affichage sur une page web.

L’article décrit les fonctionnalités de conversion d’Aspose.SVG for .NET et les scénarios SVG to Image avec les classes Converter et SVGDocument. Pour la carte complète des conversions, consultez Convertir des fichiers SVG en C# et Formats de fichiers pris en charge.

Méthodes de conversion SVG vers image

Aspose.SVG for .NET prend en charge la conversion directe et les flux avec périphérique de rendu. Les deux approches peuvent produire une sortie raster, mais elles conviennent à des architectures différentes.

ScénarioAPI recommandéePourquoi l’utiliser
Convertir un fichier SVG, stream, URL ou document en imageConverter.ConvertSVG() avec ImageSaveOptionsMeilleur choix par défaut pour convertir SVG en PNG, JPG, WebP, BMP, TIFF ou GIF.
Rendre un document existant via un périphérique imageSVGDocument.RenderTo() avec ImageDevice et ImageRenderingOptionsUtile lorsque l’application contrôle déjà les périphériques de rendu ou nécessite une configuration explicite.
Définir format d’image, arrière-plan, taille de page, résolution, antialiasing ou compression TIFFImageSaveOptions ou ImageRenderingOptionsCes options contrôlent la sortie raster sans modifier le SVG source.
Convertir SVG dans des flux web, batch ou cloudSVGDocument avec entrée et sortie streamPermet d’éviter des fichiers temporaires inutiles et simplifie la gestion des erreurs.

Quel format d’image choisir?

Format de sortieIdéal pourNotes
PNGIcônes, UI, captures, graphiques avec transparenceSortie sans perte et arrière-plan transparent sont des raisons fréquentes de choisir PNG.
JPG/JPEGPhotos ou contenu SVG avec images photographiques intégréesNe conserve pas la transparence; définissez BackgroundColor pour convertir un SVG transparent. Voir Modifier la couleur d’arrière-plan SVG.
WebPLivraison web lorsque des fichiers raster plus petits sont préférésBon choix pour le web si l’environnement cible prend WebP en charge.
BMPSortie raster simple non compresséeProduit souvent de gros fichiers; rarement le meilleur choix pour le web.
TIFFImpression, numérisation, archivage et workflows de publicationUtilisez les réglages de compression si la taille compte.
GIFSortie simple à couleurs indexées et workflows web anciensNe remplace pas le rendu d’animations SVG; utilisez-le si un système en aval exige GIF.

Convertisseur SVG en ligne

Vous pouvez convertir SVG en images et autres formats populaires en ligne ou par programmation. Testez l’API Aspose.SVG en temps réel: chargez SVG depuis le système de fichiers local, choisissez le format de sortie et lancez l’exemple. Les options de sauvegarde sont définies par défaut et le résultat est fourni dans un fichier séparé.

                
            

Si vous voulez convertir SVG vers des formats d’image par programmation, consultez les scénarios et exemples C# suivants.

Convertir SVG en JPG

JPG est l’un des formats d’image les plus utilisés. Sa particularité est la perte de qualité contrôlée pendant la compression. Il est donc largement utilisé pour stocker et transmettre du contenu graphique numérique sur le web, comme photos, scans et images numérisées. Avec Aspose.SVG, vous pouvez convertir SVG en JPG, PNG, BMP, GIF ou TIFF avec un contrôle complet sur de nombreux paramètres.

Utiliser ConvertSVG()

Les méthodes ConvertSVG() sont le moyen le plus courant de convertir SVG vers des formats populaires. Le fragment suivant montre comment convertir SVG en JPG:

1using System.IO;
2using Aspose.Svg.Saving;
3using Aspose.Svg.Converters;
4using Aspose.Svg.Rendering.Image;
 1// Convert SVG to JPG in C# using ImageSaveOptions
 2
 3// Initialize an SVG document from a file
 4using (SVGDocument document = new SVGDocument(Path.Combine(DataDir, "owl-edited.svg")))
 5{
 6    // Initialize ImageSaveOptions
 7    ImageSaveOptions saveOptions = new ImageSaveOptions(ImageFormat.Jpeg);
 8
 9    // Convert SVG to JPG
10    Converter.ConvertSVG(document, saveOptions, Path.Combine(OutputDir, "owl-edited.jpg"));
11}

La figure illustre le fichier owl-edited.jpg.

Fichier owl-edited.svg rendu en JPG

Dans l’article Modifier SVG avec des sélecteurs CSS, vous trouverez des exemples C# montrant comment le fichier original owl.svg a été modifié avec des sélecteurs CSS.

Utiliser RenderTo()

Pour convertir un document SVG en JPG avec RenderTo():

L’exemple suivant montre comment appliquer les propriétés Format et UseAntialiasing pour convertir SVG en JPG:

1using Aspose.Svg;
2using System.IO;
3using Aspose.Svg.Rendering;
4using Aspose.Svg.Rendering.Image;
 1// Render SVG to JPEG in C# with and without antialiasing
 2
 3// Initialize an SVG document from a file
 4using (SVGDocument document = new SVGDocument(Path.Combine(DataDir, "owl.svg")))
 5{
 6    // Set Format and UseAntialiasing for jpgOptions1
 7    ImageRenderingOptions jpegOptions1 = new ImageRenderingOptions(ImageFormat.Jpeg);
 8    jpegOptions1.UseAntialiasing = true;
 9
10    // Set Format and UseAntialiasing for jpgOptions2
11    ImageRenderingOptions jpegOptions2 = new ImageRenderingOptions(ImageFormat.Jpeg);
12    jpegOptions2.UseAntialiasing = false;
13
14    // Initialize an instance of the ImageDevice class
15    using (IDevice device = new ImageDevice(jpegOptions1, Path.Combine(OutputDir, "owl_out1.jpg")))
16    {
17        // Render SVG to JPG
18        document.RenderTo(device);
19    }
20    using (IDevice device = new ImageDevice(jpegOptions2, Path.Combine(OutputDir, "owl_out2.jpg")))
21    {
22        document.RenderTo(device);
23    }
24}

Le constructeur ImageRenderingOptions() initialise une instance de ImageRenderingOptions transmise au constructeur ImageDevice(). ImageDevice(options, file) reçoit options et file et crée le périphérique de sortie. RenderTo(device) rend SVG en JPG.

La classe ImageRenderingOptions offre de nombreuses propriétés pour contrôler la conversion en JPG. La propriété Format définit le format d’image. Par défaut, elle vaut Png. Pour convertir SVG en JPG, utilisez ImageFormat.Jpeg.

Fragments d’images obtenus avec différents réglages de lissage

Dans l’exemple, le fichier owl.svg est converti en JPG avec différentes valeurs de UseAntialiasing. La figure montre des fragments JPG agrandis à 250 %: a) UseAntialiasing vaut true; b) UseAntialiasing vaut false.

Utilisez UseAntialiasing = true lorsque vous voulez améliorer la qualité visuelle des formes, textes et images rendus, surtout si des bords nets et lisses sont importants. L’antialiasing adoucit les bords irréguliers en mélangeant les couleurs des pixels autour des contours.

Même si UseAntialiasing = true améliore la qualité visuelle, il peut augmenter le temps de traitement. Si la vitesse est prioritaire, UseAntialiasing = false peut être préférable.

Classe ImageSaveOptions

Aspose.SVG permet de convertir SVG en formats d’image avec des options par défaut ou personnalisées. ImageSaveOptions permet de personnaliser le rendu, par exemple le format d’image, la taille de page, les marges et la couleur d’arrière-plan.

PropriétéDescription
CompressionDéfinit la compression TIFF. Par défaut, LZW est utilisé.
CSSRenvoie un objet CssOptions utilisé pour configurer le traitement CSS.
FormatDéfinit ImageFormat, par exemple JPG, PNG, WebP, BMP, TIFF ou GIF. Par défaut, le format est PNG.
BackgroundColorDéfinit la couleur de l’arrière-plan. Par défaut, elle est Transparent.
PageSetupRenvoie l’objet de configuration de page et l’utilise pour configurer les pages de sortie.
HorizontalResolutionDéfinit la résolution horizontale en pixels par pouce. La valeur par défaut est 300 dpi.
VerticalResolutionDéfinit la résolution verticale en pixels par pouce. La valeur par défaut est 300 dpi.
UseAntialiasingIndique si l’antialiasing est utilisé. Par défaut, il est activé.
TextRenvoie un objet TextOptions utilisé pour configurer le rendu du texte.

Remarque: les options implémentées par ImageSaveOptions héritent de ImageRenderingOptions.

Convertir SVG en PNG

PNG utilise une compression sans perte pour stocker les images raster. Il prend en charge le modèle de couleur RGB et n’est pas conçu pour la prépresse. PNG est largement utilisé pour transmettre des images sur le réseau et afficher photos ou graphiques sur des pages web et dans des stockages cloud.

Utiliser ConvertSVG()

Le fragment suivant montre comment préparer un fichier SVG à partir de zéro et le convertir en PNG:

L’exemple suivant montre comment utiliser ImageSaveOptions pour convertir SVG en PNG avec des options personnalisées:

1using Aspose.Svg;
2using System.IO;
3using Aspose.Svg.Saving;
4using Aspose.Svg.Converters;
 1// Convert SVG to PNG in C# with a custom background color
 2
 3// Prepare SVG code and save it to a file
 4string code = "<svg xmlns='http://www.w3.org/2000/svg'>" +
 5              "<circle cx='100' cy='150' r='50' stroke='#2F4F4F' stroke-width='4' fill='#FF7F50' />" +
 6              "<circle cx='180' cy='200' r='60' stroke='#2F4F4F' stroke-width='4' fill='#008B8B' />" +
 7              "</svg>";
 8File.WriteAllText("example.svg", code);
 9
10// Initialize an SVG document from the file
11using (SVGDocument document = new SVGDocument("example.svg"))
12{
13    // Initialize an instance of the ImageSaveOptions class and set the BackgroundColor property
14    ImageSaveOptions saveOptions = new ImageSaveOptions();
15    saveOptions.BackgroundColor = System.Drawing.Color.Gainsboro;
16
17    // Convert SVG to PNG
18    Converter.ConvertSVG(document, saveOptions, Path.Combine(OutputDir, "output.png"));
19}

Dans l’exemple, le constructeur ImageSaveOptions() initialise une instance de ImageSaveOptions transmise à ConvertSVG(). ConvertSVG() reçoit document, saveOptions et le chemin de sortie, puis effectue la conversion SVG vers PNG.

Remarque: nous ne définissons pas Format pour la conversion en PNG. Le constructeur ImageSaveOptions() utilise Png comme format d’image par défaut.

Utiliser RenderTo()

Pour convertir SVG en PNG avec RenderTo():

1using Aspose.Svg;
2using System.IO;
3using Aspose.Svg.Rendering;
4using Aspose.Svg.Rendering.Image;
 1// Render SVG to PNG in C# using ImageDevice
 2
 3// Prepare a path to a source SVG file
 4string documentPath = Path.Combine(DataDir, "snowflake.svg");
 5
 6// Initialize an SVG document from the file
 7using (SVGDocument document = new SVGDocument(documentPath))
 8{
 9    // Create the ImageDevice, set image Format and specify an output file to render
10    using (IDevice device = new ImageDevice(new ImageRenderingOptions(), Path.Combine(OutputDir, "snowflake.png")))
11    {
12        // Render SVG to PNG
13        document.RenderTo(device);
14    }
15}

Le constructeur ImageRenderingOptions() initialise une instance de ImageRenderingOptions transmise à ImageDevice(). ImageDevice(options, file) crée le périphérique de sortie. RenderTo(device) rend SVG en PNG.

La figure illustre le fichier snowflake.png.

Fichier snowflake.svg rendu en PNG

Convertir SVG en BMP

Les fichiers BMP conservent la qualité de l’image et stockent les données de couleur de chaque pixel sans compression, mais leur taille importante les rend peu adaptés au web. Ce format est aussi rarement adapté à la prépresse, car il est limité au RGB.

Aspose.SVG peut convertir un document de SVG vers BMP en plusieurs étapes:

1using Aspose.Svg;
2using System.IO;
3using Aspose.Svg.Rendering;
4using Aspose.Svg.Rendering.Image;
 1// Convert SVG to BMP in C# using ImageDevice
 2
 3// Open a source SVG document
 4using (SVGDocument document = new SVGDocument(documentPath))
 5{
 6    // Create ImageDevice, set image Format and specify an output file to render
 7    using (IDevice device = new ImageDevice(new ImageRenderingOptions(ImageFormat.Bmp), Path.Combine(OutputDir, "conclusion_out.bmp")))
 8    {
 9        // Render SVG to BMP
10        document.RenderTo(device);
11    }
12}

Le constructeur ImageRenderingOptions() initialise une instance de ImageRenderingOptions transmise à ImageDevice(). ImageDevice(options, file) crée le périphérique de sortie. RenderTo(device) rend SVG en BMP.

Convertir SVG en TIFF

TIFF est un format de stockage d’images raster avec une large palette de couleurs. Il est pris en charge par les outils de scan, fax, OCR, traitement d’image et mise en page, et il est utilisé dans des flux d’impression et de publication.

Aspose.SVG peut convertir un document de SVG vers TIFF en plusieurs étapes:

1using Aspose.Svg;
2using System.IO;
3using Aspose.Svg.Rendering;
4using Aspose.Svg.Rendering.Image;
 1// Convert SVG to TIFF in C# with custom settings
 2
 3// Open a source SVG document
 4using (SVGDocument document = new SVGDocument(Path.Combine(DataDir, "conclusion.svg")))
 5{
 6    // Initialize an instance of the ImageRenderingOptions class and set the Format and Compression properties
 7    ImageRenderingOptions tiffOptions = new ImageRenderingOptions(ImageFormat.Tiff);
 8    tiffOptions.Compression = Compression.None;
 9
10    // Initialize an instance of the ImageDevice class and specify an output file to render
11    using (IDevice device = new ImageDevice(tiffOptions, Path.Combine(OutputDir, "conclusion.tiff")))
12    {
13        // Render SVG to TIFF
14        document.RenderTo(device);
15    }
16}

Le constructeur ImageRenderingOptions() initialise une instance de ImageRenderingOptions transmise à ImageDevice(). ImageDevice(options, file) crée le périphérique de sortie. RenderTo(device) rend SVG en TIFF.

ImageRenderingOptions fournit de nombreuses propriétés pour contrôler la conversion SVG vers TIFF. Par exemple, Compression permet de définir la compression TIFF. Dans l’exemple, Compression.None est utilisé.

Convertir SVG en GIF

GIF est un format d’image courant qui prend en charge les images animées et reste utilisé dans certains flux web. Le fragment suivant montre comment convertir SVG en GIF avec Aspose.SVG for .NET:

L’exemple suivant montre comment utiliser ImageSaveOptions pour créer une image de sortie avec des caractéristiques PageSetup personnalisées:

1using Aspose.Svg;
2using System.IO;
3using Aspose.Svg.Drawing;
4using Aspose.Svg.Saving;
5using Aspose.Svg.Converters;
6using Aspose.Svg.Rendering.Image;
 1// Convert SVG to GIF in C# with custom settings
 2
 3// Initialize an SVG document from a file
 4using (SVGDocument document = new SVGDocument(Path.Combine(DataDir, "owl.svg")))
 5{
 6    // Initialize an instance of the ImageSaveOptions class and set the PageSetup property
 7    ImageSaveOptions saveOptions = new ImageSaveOptions(ImageFormat.Gif);
 8    saveOptions.PageSetup.AnyPage = new Page(new Drawing.Size(400, 600), new Margin(20, 20, 20, 20));
 9
10    // Convert SVG to GIF
11    Converter.ConvertSVG(document, saveOptions, Path.Combine(OutputDir, "owl.gif"));
12}

Convertir SVGZ en PNG en C#

SVGZ est un fichier SVG compressé, pas un modèle de dessin distinct. Aspose.SVG for .NET peut charger des fichiers .svgz avec SVGDocument; ensuite, vous pouvez rendre le document en PNG avec le même flux ImageSaveOptions et Converter.ConvertSVG() que pour SVG:

1using Aspose.Svg;
2using Aspose.Svg.Converters;
3using Aspose.Svg.Saving;
4
5using (var document = new SVGDocument("input.svgz"))
6{
7    var options = new ImageSaveOptions();
8    Converter.ConvertSVG(document, options, "output.png");
9}

PNG est le format d’image par défaut pour ImageSaveOptions, donc Format n’est pas nécessaire pour convertir SVGZ en PNG. Utilisez ce flux pour créer miniatures, aperçus raster ou images web depuis des assets SVG compressés. Si vous avez besoin d’un balisage modifiable avant le rendu, consultez Convertir SVGZ en SVG en C#.

Recommandations pratiques

Lorsque vous convertissez SVG en images raster dans une application .NET en production, définissez explicitement format de sortie, dimensions, résolution, arrière-plan et accès aux ressources. Cela permet de conserver des miniatures, aperçus, rapports et images web cohérents en développement local, sur serveurs et dans conteneurs.

Tâche en productionRecommandation
Générer des miniatures webUtilisez PNG ou WebP, définissez PageSetup et choisissez un arrière-plan prévisible pour les SVG transparents. Voir Redimensionner un document pendant la conversion depuis SVG.
Convertir des fichiers SVG téléversésChargez depuis un stream ou stockage contrôlé, validez SVG et écrivez l’image de sortie vers un stockage géré par l’application. Voir Créer, charger et lire des fichiers SVG en C#.
Préserver la transparenceChoisissez PNG ou WebP et gardez BackgroundColor transparent. Évitez JPG si la transparence doit être conservée. Pour l’arrière-plan, voir Couleur d’arrière-plan SVG.
Produire une sortie JPG depuis un SVG transparentDéfinissez BackgroundColor, car JPG ne prend pas en charge la transparence alpha.
Traiter de nombreux fichiers SVGLibérez les instances SVGDocument, gérez les erreurs par fichier et évitez de garder de gros SVG ou sorties raster en mémoire plus longtemps que nécessaire.
Stabiliser la sortie texteAssurez-vous que les polices nécessaires sont disponibles ou intégrées. Les polices manquantes peuvent changer les métriques de texte et la mise en page finale. Voir Travailler avec les polices et le texte SVG en C#.

Erreurs fréquentes et solutions

ProblèmeCause fréquenteSolution
L’image de sortie a la mauvaise tailleSVG n’a pas de width, height ou viewBox clair, ou la configuration de page de sortie manqueDéfinissez les dimensions SVG ou PageSetup dans ImageSaveOptions ou ImageRenderingOptions. Voir SVG viewBox et Redimensionner un document.
Un SVG transparent devient noir, blanc ou inattendu en JPGJPG ne prend pas en charge la transparenceUtilisez PNG/WebP pour la transparence ou définissez BackgroundColor avant l’enregistrement en JPG. Voir Modifier la couleur d’arrière-plan SVG.
Les lignes ou le texte sont crénelésAntialiasing désactivé ou résolution de sortie trop faibleUtilisez UseAntialiasing = true et une résolution horizontale et verticale adaptée. Voir Qualité de rendu SVG et cohérence de sortie.
Images, polices ou CSS externes manquentLes ressources liées ne sont pas disponibles pendant la conversionUtilisez des chemins accessibles, intégrez les assets ou configurez l’environnement pour résoudre les dépendances. Voir Corriger les problèmes de styles et polices SVG en C#.
Les fichiers TIFF sont trop volumineuxSortie TIFF non compressée ou contenu raster haute résolutionConfigurez Compression TIFF, vérifiez la résolution nécessaire et optimisez le SVG source si possible. Voir Optimiser les fichiers SVG pour le Web et les performances.
La sortie diffère entre poste de développement et serveurPolices, chemins ou accès aux ressources diffèrent selon l’environnementConfigurez polices et emplacements de ressources de manière cohérente pour Windows, Linux, Docker et cloud. Voir Environment Configuration.

FAQ

Puis-je convertir un SVG créé ou modifié en mémoire?
Oui. Créez ou modifiez un SVGDocument, configurez ImageSaveOptions et transmettez l’instance à Converter.ConvertSVG(). C’est utile lorsque vous modifiez éléments, styles ou couleurs avant le rendu final.

Puis-je modifier le contenu SVG avant de le rendre en image?
Oui. Vous pouvez d’abord mettre à jour le DOM SVG, par exemple avec des sélecteurs CSS, puis rendre le document modifié. Voir Modifier SVG avec des sélecteurs CSS en C#.

La conversion SVG vers image conserve-t-elle les données vectorielles?
Non. PNG, JPG, WebP, BMP, TIFF et GIF sont des sorties raster. Le résultat contient des pixels. Si vous devez conserver un balisage vectoriel modifiable, enregistrez le document en SVG ou utilisez la compression SVGZ.

Puis-je utiliser le même code dans une application serveur?
Oui. Les applications serveur chargent souvent SVG depuis fichier, stream, URL ou chaîne générée, puis écrivent l’image rendue vers un stockage géré par l’application. Configurez polices, chemins de ressources et dimensions de sortie explicitement.

Par où commencer si l’image rendue diffère du SVG source?
Vérifiez dimensions, viewBox, polices, ressources liées, CSS, couleur d’arrière-plan et antialiasing. Le tableau Erreurs fréquentes et solutions pointe vers les articles de dépannage pertinents.

Ressources connexes

Vous pouvez essayer notre SVG to JPG Converter gratuit en ligne. Chargez un fichier, lancez la conversion et obtenez le résultat en quelques secondes.

Convertisseur SVG en JPG en ligne