Conversion de fichiers image via C#
Convertissez les formats d’image, les métafichiers, WebP, Svg, Apng pour créer des applications de traitement d’image avancées multiplateformes basées sur .NET.
L’API d’image .NET facilite les fonctionnalités avancées de traitement et de rendu d’image pour les programmeurs. Les développeurs peuvent l’intégrer pour convertir des images raster et vectorielles, y compris des photos et des images en PSD, PDF, GIF, PNG, DICOM, SVG, JPG, JPEG2000, APNG, BMP, TIFF, HTML5 CANVAS, WEBP, WMF, EMF et d’autres formats d’image . L’API traite non seulement de la conversion des fichiers, mais également de la conversion des images en noir et blanc et en niveaux de gris, de la conversion des calques d’image GIF, etc.
Convertir une image en bitmap BMP, JPG, PNG
À l’aide de l’API d’image C #, la conversion inter-format est aussi simple que de simplement changer l’extension du format souhaité. Voici quelques cas génériques tels que image en bmp, image en jpg, image en png et les développeurs peuvent facilement améliorer leur format spécifique. Le processus consiste à charger l’image source via Image.Load . Créez un objet de cible options de format d’image pour tous les paramètres spécifiques. Enfin, appelez la Save Method en transmettant le fichier cible avec le chemin et les options d’enregistrement en tant que paramètre.
Code C# pour l'inter-conversion d'images
using Aspose.Imaging; | |
using Aspose.Imaging.FileFormats.Png; | |
using Aspose.Imaging.ImageOptions; | |
using System.Collections.Generic; | |
using System.IO; | |
using System.Linq; | |
string templatesFolder = @"c:\Users\USER\Downloads\templates\"; | |
string dataDir = templatesFolder; | |
ProcessConvertion(); | |
void ProcessConvertion() | |
{ | |
//Get list of supported formats in | |
//Aspose.Imaging for loading and saving images | |
var formats = GetAvailableImageFormats(); | |
var importFormats = formats.Import; | |
var exportFormats = formats.Export; | |
//Process each raster and vector format that can be loaded | |
foreach (var format in importFormats) | |
{ | |
string formatExt = format.Key; | |
var inputFile = Path.Combine(templatesFolder, $"template.{formatExt}"); | |
//Process each raster and vector format | |
//to which we can save imported image | |
foreach (var exportFormat in exportFormats) | |
{ | |
var outputFile = Path.Combine(templatesFolder, $"convert-{formatExt}-to-{exportFormat.Key}.{exportFormat.Key}"); | |
System.Console.WriteLine("Processing conversion:" + outputFile); | |
//More about load method can be found at | |
//https://apireference.aspose.com/imaging/net/aspose.imaging.image/load/methods/2 | |
//Load imported image | |
using (var image = Image.Load(inputFile)) | |
{ | |
//Obtain default saving options defined for each image | |
ImageOptionsBase exportOptions = exportFormat.Value.Clone(); | |
//If loaded image is vector, need to specify vector rasterization options | |
//for export to another vector | |
if (image is VectorImage) | |
{ | |
VectorRasterizationOptions rasterizationOptions = format.Value; | |
rasterizationOptions.PageWidth = image.Width; | |
rasterizationOptions.PageHeight = image.Height; | |
exportOptions.VectorRasterizationOptions = rasterizationOptions; | |
} | |
image.Save(outputFile, exportOptions); | |
} | |
File.Delete(outputFile); | |
} | |
//System.GC.Collect(); | |
} | |
} | |
(Dictionary<string, VectorRasterizationOptions> Import, Dictionary<string, ImageOptionsBase> Export) GetAvailableImageFormats() | |
{ | |
//////////////////////////////// | |
///Raster and vector formats to that we can export images | |
//////////////////////////////// | |
//Raster image formats that support both - save and load and their default save options | |
Dictionary<string, ImageOptionsBase> rasterFormatsThatSupportExportAndImport = new Dictionary<string, ImageOptionsBase>() | |
{ | |
{ "bmp", new BmpOptions()}, | |
{ "gif", new GifOptions()}, | |
{ "dicom", new DicomOptions()}, | |
{ "jpg", new JpegOptions()}, | |
{ "jpeg", new JpegOptions()}, | |
{ "jpeg2000", new Jpeg2000Options() }, | |
{ "j2k", new Jpeg2000Options { Codec = Aspose.Imaging.FileFormats.Jpeg2000.Jpeg2000Codec.J2K } }, | |
{ "jp2", new Jpeg2000Options { Codec = Aspose.Imaging.FileFormats.Jpeg2000.Jpeg2000Codec.Jp2 }}, | |
{ "png",new PngOptions(){ ColorType = PngColorType.TruecolorWithAlpha} }, | |
{ "apng", new ApngOptions()}, | |
{ "tiff", new Aspose.Imaging.ImageOptions.TiffOptions(Aspose.Imaging.FileFormats.Tiff.Enums.TiffExpectedFormat.Default)}, | |
{ "tif", new Aspose.Imaging.ImageOptions.TiffOptions(Aspose.Imaging.FileFormats.Tiff.Enums.TiffExpectedFormat.Default)}, | |
{ "tga", new TgaOptions()}, | |
{ "webp", new WebPOptions()}, | |
{ "ico", new IcoOptions()} | |
}; | |
//Vector image formats that support both - save and load, their default save options | |
//and their rasterization options when exporting to another vector image | |
Dictionary<string, (ImageOptionsBase, VectorRasterizationOptions)> vectorFormatsThatSupportExportAndImport | |
= new Dictionary<string, (ImageOptionsBase, VectorRasterizationOptions)>() | |
{ | |
{ "emf", (new EmfOptions(),new EmfRasterizationOptions()) }, | |
{ "svg", (new SvgOptions(), new SvgRasterizationOptions())}, | |
{ "wmf", (new WmfOptions(), new WmfRasterizationOptions())}, | |
{ "emz", (new Aspose.Imaging.ImageOptions.EmfOptions(){ Compress = true }, new EmfRasterizationOptions())}, | |
{ "wmz", (new Aspose.Imaging.ImageOptions.WmfOptions(){ Compress = true }, new WmfRasterizationOptions())}, | |
{ "svgz", (new Aspose.Imaging.ImageOptions.SvgOptions(){ Compress = true }, new SvgRasterizationOptions())}, | |
}; | |
//////////////////////////////// | |
///Raster and vector formats from which we can load images | |
//////////////////////////////// | |
//Formats that can be only saved (supported only save to this formats) | |
Dictionary<string, ImageOptionsBase> formatsOnlyForExport = new Dictionary<string, ImageOptionsBase>() | |
{ | |
{ "psd", new PsdOptions()}, | |
{ "dxf", new DxfOptions(){ TextAsLines = true,ConvertTextBeziers = true} }, | |
{ "pdf", new PdfOptions()}, | |
{ "html", new Html5CanvasOptions()}, | |
}; | |
//Raster formats that can be only loaded | |
List<string> formatsOnlyForImport = new List<string>() | |
{ | |
"djvu", "dng", "dib" | |
}; | |
//Vector formats only for loading and their rasterization options when exporting to another vector format | |
Dictionary<string, VectorRasterizationOptions> vectorFormatsOnlyForImport = new Dictionary<string, VectorRasterizationOptions>() | |
{ | |
{"eps", new EpsRasterizationOptions()}, | |
{"cdr", new CdrRasterizationOptions() }, | |
{"cmx", new CmxRasterizationOptions() }, | |
{"otg", new OtgRasterizationOptions() }, | |
{"odg", new OdgRasterizationOptions() } | |
}; | |
//Get total set of formats to what we can export images | |
Dictionary<string, ImageOptionsBase> exportFormats = vectorFormatsThatSupportExportAndImport | |
.ToDictionary(s => s.Key, s => s.Value.Item1) | |
.Union(formatsOnlyForExport) | |
.Concat(rasterFormatsThatSupportExportAndImport) | |
.ToDictionary(s => s.Key, s => s.Value); | |
//Get total set of formats that can be loaded | |
Dictionary<string, VectorRasterizationOptions> importFormats = vectorFormatsOnlyForImport | |
.Union(formatsOnlyForImport.ToDictionary(s => s, s => new VectorRasterizationOptions())) | |
.Union(vectorFormatsThatSupportExportAndImport.ToDictionary(s => s.Key, s => s.Value.Item2)) | |
.ToDictionary(s => s.Key, s => s.Value); | |
return (Import: importFormats, Export: exportFormats); | |
} |
Conversion d'image raster en PDF
Le processus de conversion des images raster en PDF est le même que celui de la conversion inter-images, sauf que l’API fournit PdfOptions pour des paramètres PDF spécifiques . Les programmeurs peuvent facilement l’améliorer pour leurs besoins spécifiques.
Code pour la conversion d'images raster en PDF
using (Image imge = Image.Load(dataDir+ "transparent_orig.gif")) | |
{ | |
imge.Save(dataDir+"output.pdf", new PdfOptions() { PdfDocumentInfo = new Aspose.Imaging.FileFormats.Pdf.PdfDocumentInfo() } ); | |
} |
Convertir SVG en images raster BMP, PNG, JPG
Le processus de conversion de SVG est le même, chargez le fichier SVG, utilisez les options d’enregistrement d’image pertinentes et appelez la méthode Save. L’API d’image fournit SvgRasterizationOptions pour définir PageWidth, PageHeight et les images raster utilisent leur propriété VectorRasterizationOptions pour l’initialisation et l’obtention des options SvgRasterizationOptions.
Code C# pour SVG en images raster
// Load the image | |
using (SvgImage image = (SvgImage)Image.Load(dataDir + "sourceFile.Svg")) | |
{ | |
// Create an instance of relevant raster image options and Save the results to disk | |
PngOptions pngOptions = new PngOptions(); | |
SvgRasterizationOptions svgOptions = new SvgRasterizationOptions(); | |
svgOptions.PageWidth = 100; | |
svgOptions.PageHeight = 200; | |
pngOptions.VectorRasterizationOptions = svgOptions; | |
image.Save(dataDir + "ConvertingSVGToRasterImages_out.png", pngOptions); | |
} |
Tous les images formats pris en charge à partir desquels convertir
Vous trouverez ci-dessous la liste complète des formats d’image vers lesquels vous pouvez convertir :
Tous les formats d'image pris en charge pour convertir
Vous trouverez ci-dessous la liste complète des formats d’image à partir desquels vous pouvez convertir :