Chuyển đổi tệp hình ảnh qua C #
Chuyển đổi các định dạng Hình ảnh, Siêu tệp, WebP, Svg, Apng để xây dựng các ứng dụng xử lý hình ảnh tiên tiến dựa trên .NET đa nền tảng.
.NET Image API hỗ trợ các tính năng kết xuất và xử lý hình ảnh nâng cao cho các lập trình viên. Các nhà phát triển có thể tích hợp nó để chuyển đổi hình ảnh raster & vector, bao gồm ảnh và hình ảnh sang PSD, PDF, GIF, PNG, DICOM, SVG, JPG, JPEG2000, APNG, BMP, TIFF, HTML5 CANVAS, WEBP, WMF, EMF và các định dạng hình ảnh khác . API không chỉ giải quyết việc chuyển đổi tệp mà còn giải quyết việc chuyển đổi hình ảnh sang màu đen trắng và thang độ xám, chuyển đổi các lớp ảnh GIF và hơn thế nữa.
Chuyển đổi hình ảnh sang Bitmap BMP, JPG, PNG
Sử dụng C # Image API, chuyển đổi định dạng Inter dễ dàng như chỉ cần thay đổi phần mở rộng của định dạng mong muốn. Dưới đây là một số trường hợp chung chung như image thành bmp, image thành jpg, image thành png và các nhà phát triển có thể dễ dàng nâng cao cho định dạng cụ thể của họ. Quá trình được tải hình ảnh nguồn qua Image.Load . Tạo một đối tượng đích tùy chọn định dạng hình ảnh cho bất kỳ cài đặt cụ thể nào. Cuối cùng gọi Phương pháp Lưu bằng cách chuyển tệp đích với đường dẫn và tùy chọn Lưu dưới dạng tham số.
Mã C # để chuyển đổi giữa các hình ảnh
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); | |
} |
Chuyển đổi hình ảnh sang PDF nhanh hơn
Quá trình chuyển đổi hình ảnh raster sang PDF giống như quá trình chuyển đổi giữa các hình ảnh, ngoại trừ API cung cấp PdfOptions cho các cài đặt PDF cụ thể . Các lập trình viên có thể dễ dàng nâng cao nó cho các nhu cầu cụ thể của họ.
Mã để chuyển đổi hình ảnh Raster sang PDF
using (Image imge = Image.Load(dataDir+ "transparent_orig.gif")) | |
{ | |
imge.Save(dataDir+"output.pdf", new PdfOptions() { PdfDocumentInfo = new Aspose.Imaging.FileFormats.Pdf.PdfDocumentInfo() } ); | |
} |
Chuyển đổi SVG sang Raster Hình ảnh BMP, PNG, JPG
Quá trình chuyển đổi SVG cũng giống như vậy, Tải tệp SVG, Sử dụng các tùy chọn lưu ảnh có liên quan và gọi phương thức Lưu. Image API cung cấp SvgRasterizationOptions để thiết lập hình ảnh PageWidth, PageHeight và raster sử dụng thuộc tính VectorRasterizationOptions để khởi tạo và nhận các tùy chọn SvgRasterizationOptions.
Mã C # cho hình ảnh SVG to 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); | |
} |
Tất cả các định dạng hình ảnh được hỗ trợ để chuyển đổi từ
Dưới đây là danh sách đầy đủ các định dạng hình ảnh mà bạn có thể chuyển đổi sang:
Tất cả các định dạng hình ảnh được hỗ trợ để chuyển đổi sang
Dưới đây là danh sách đầy đủ các định dạng hình ảnh mà bạn có thể chuyển đổi từ: