类 EmfImage
内容
[
隐藏
]EmfImage class
针对增强型元文件格式 (EMF) 矢量图像格式支持的 API 是一个全面的工具,用于以设备无关的方式处理图形图像,同时保留其原始属性。该工具旨在保持比例、尺寸、颜色及其他图形属性,包含对 EMF Plus 格式的支持,并提供裁剪区域、调整画布和图像大小、旋转、翻转、设置图像调色板、导出和导入到 APS 设备上下文、压缩以及将 EMF 转换为其他格式等功能,确保对 EMF 图像的多功能操作并实现无缝集成于各类应用中。
public sealed class EmfImage : MetaImage
构造函数
| 名称 | 描述 |
|---|---|
| EmfImage() | 通过初始化 EmfImage 类的新实例开始使用 EMF 图像。非常适合轻松高效地将 EMF 图像快速集成到您的项目中。 |
| EmfImage(int, int) | 通过指定宽度和高度参数创建 EmfImage 类的新实例。此构造函数简化了使用特定尺寸初始化 EMF 图像的过程,提高了开发工作流的效率。 |
属性
| 名称 | 描述 |
|---|---|
| AutoAdjustPalette { get; set; } | 获取或设置指示是否自动调整调色板的值。 |
| virtual BackgroundColor { get; set; } | 获取或设置背景颜色的值。 |
| override BitsPerPixel { get; } | 获取光栅图像特有的每像素位数,因为该参数不适用于矢量图像。快速确定光栅图像的像素深度,以便进行精确分析和操作,确保图像数据的准确处理。 |
| Bounds { get; } | 获取图像的边界。 |
| BufferSizeHint { get; set; } | 获取或设置缓冲区大小提示,该提示定义了所有内部缓冲区的最大允许大小。 |
| Container { get; } | 获取 Image 容器。 |
| DataStreamContainer { get; } | 获取对象的数据流。 |
| Disposed { get; } | 获取一个值,指示此实例是否已释放。 |
| ExifData { get; set; } | 获取或设置 Exif 数据。 |
| override FileFormat { get; } | 访问与对象关联的文件格式值。轻松确定对象关联文件的格式,以实现流畅的处理和兼容性检查。通过轻松获取文件格式信息简化工作流。 |
| virtual HasBackgroundColor { get; set; } | 获取或设置指示图像是否具有背景颜色的值。 |
| Header { get; set; } | 使用此属性检索或修改 EMF 元文件头记录。非常适合在应用程序中高效管理元文件数据。通过简化对元文件头信息的访问来提升工作流。 |
| override Height { get; } | 获取图像高度。 |
| override HeightF { get; } | 检索图像的高度,以便实现精确渲染和布局调整。访问高度属性可确保在不同平台和应用之间的兼容性和无缝集成。 |
| InterruptMonitor { get; set; } | 获取或设置中断监视器。 |
| override IsCached { get; } | 访问一个指示对象数据当前是否已缓存的值,避免额外的数据读取。通过快速判断缓存数据是否可立即访问来提升效率。通过简化的数据检索过程优化工作流。 |
| virtual Metadata { get; } | 获取图像元数据。 |
| Palette { get; set; } | 获取或设置颜色调色板。当像素直接表示时,调色板不被使用。 |
| override Records { get; set; } | 检索或修改与对象关联的记录。高效访问和管理记录集合,以增强数据操作和处理。通过无缝交互对象的记录来优化工作流。 |
| Size { get; } | 获取图像尺寸。 |
| SizeF { get; } | 获取对象的尺寸(英寸)。 |
| virtual UsePalette { get; } | 获取一个值,指示是否使用图像调色板。 |
| override Width { get; } | 获取图像宽度。 |
| override WidthF { get; } | 访问图像的宽度,提供精确渲染和处理所需的关键信息。快速检索图像宽度,以确保在各种应用程序和平台中的兼容性和正确布局。 |
| XmpData { get; set; } | 获取或设置 Xmp 数据。 |
方法
| 名称 | 描述 |
|---|---|
| override CacheData() | 使用此方法高效缓存数据,防止从底层DataStreamContainer重复加载。提升性能并简化应用程序中的数据访问,优化资源利用以提高响应速度。 |
| CanSave(ImageOptionsBase) | 确定图像是否可以保存为传入保存选项所表示的指定文件格式。 |
| override Crop(Rectangle) | 裁剪指定的矩形。 |
| virtual Crop(int, int, int, int) | 使用位移裁剪图像。 |
| Dispose() | 释放当前实例。 |
| override GetDefaultOptions(object[]) | 获取默认的图像选项。 |
| virtual GetEmbeddedImages() | 获取嵌入的图像。 |
| GetMissedFonts() | 返回在元文件中使用但未找到的字体列表。 |
| override GetOriginalOptions() | 获取原始图像选项。 |
| virtual GetSerializedStream(ImageOptionsBase, Rectangle, out int) | 转换为 aps。 |
| override GetUsedFonts() | 使用此方法检索元文件中使用的字体列表。深入了解字体使用情况,帮助高效管理和优化字体资源,以提升渲染和显示的保真度。 |
| virtual RemoveBackground() | 移除背景。 |
| virtual RemoveBackground(RemoveBackgroundSettings) | 移除背景。 |
| virtual RemoveMetadata() | 移除元数据。 |
| Resize(int, int) | 调整图像大小。默认使用 NearestNeighbourResample。 |
| override Resize(int, int, ImageResizeSettings) | 使用扩展选项调整图像大小。 |
| override Resize(int, int, ResizeType) | 调整指定的新宽度。 |
| override ResizeCanvas(Rectangle) | 使用此函数轻松调整画布大小。非常适合在不改变内容的情况下调整图像的整体尺寸。提升展示效果,并轻松为各种显示尺寸准备图像。 |
| ResizeHeightProportionally(int) | 按比例调整高度。默认使用 NearestNeighbourResample。 |
| virtual ResizeHeightProportionally(int, ImageResizeSettings) | 按比例调整高度。 |
| virtual ResizeHeightProportionally(int, ResizeType) | 按比例调整高度。 |
| ResizeWidthProportionally(int) | 按比例调整宽度。使用默认的 NearestNeighbourResample。 |
| virtual ResizeWidthProportionally(int, ImageResizeSettings) | 按比例调整宽度。 |
| virtual ResizeWidthProportionally(int, ResizeType) | 按比例调整宽度。 |
| override Rotate(float) | 围绕中心旋转图像。 |
| override RotateFlip(RotateFlipType) | 旋转、翻转或同时旋转和翻转图像。 |
| Save() | 将图像数据保存到底层流。 |
| Save(Stream) | 将对象的数据保存到指定的流。 |
| override Save(string) | 将图像保存到指定的文件位置。 |
| Save(Stream, ImageOptionsBase) | 根据保存选项,将图像数据以指定的文件格式保存到指定的流中。 |
| virtual Save(string, bool) | 将对象的数据保存到指定的文件位置。 |
| virtual Save(string, ImageOptionsBase) | 根据保存选项,将对象的数据以指定的文件格式保存到指定的文件位置。 |
| virtual Save(Stream, ImageOptionsBase, Rectangle) | 根据保存选项,将图像数据以指定的文件格式保存到指定的流中。 |
| virtual Save(string, ImageOptionsBase, Rectangle) | 根据保存选项,将对象的数据以指定的文件格式保存到指定的文件位置。 |
| override SetPalette(IColorPalette, bool) | 设置图像调色板。 |
| virtual TrySetMetadata(IImageMetadataFormat) | 尝试设置 metadata 实例,前提是此 Image 实例支持并实现了 IImageMetadataFormat 类型。 |
示例
以下示例展示了如何将 emz 图像转换为 emf 格式
[C#]
string file = "example.emz";
string baseFolder = System.IO.Path.Combine("D:", "Compressed");
string inputFile = System.IO.Path.Combine(baseFolder, file);
string outFile = inputFile + ".emf";
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(inputFile))
{
Aspose.Imaging.ImageOptions.VectorRasterizationOptions vectorRasterizationOptions = new Aspose.Imaging.ImageOptions.EmfRasterizationOptions {PageSize = image.Size};
image.Save(outFile, new Aspose.Imaging.ImageOptions.EmfOptions {VectorRasterizationOptions = vectorRasterizationOptions});
}
以下示例展示了如何将 emf 图像转换为 emz 格式
[C#]
string file = "input.emf";
string baseFolder = System.IO.Path.Combine("D:", "Compressed");
string inputFile = System.IO.Path.Combine(baseFolder, file);
string outFile = inputFile + ".emz";
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(inputFile))
{
Aspose.Imaging.ImageOptions.VectorRasterizationOptions vectorRasterizationOptions = new Aspose.Imaging.ImageOptions.EmfRasterizationOptions() { PageSize = image.Size};
image.Save(outFile, new Aspose.Imaging.ImageOptions.EmfOptions() {VectorRasterizationOptions = vectorRasterizationOptions, Compress = true});
}
以下示例展示了如何将压缩图像(*.emz, *.wmz, *.svgz)转换为光栅格式
[C#]
string[] files = new[] {"example.emz", "example.wmz", "example.svgz"};
string baseFolder = System.IO.Path.Combine("D:","Compressed");
foreach (var file in files)
{
string inputFile = System.IO.Path.Combine(baseFolder, file);
string outFile = inputFile + ".png";
using (Aspose.Imaging.Image image = Aspose.Imaging.Image.Load(inputFile))
{
Aspose.Imaging.ImageOptions.VectorRasterizationOptions vectorRasterizationOptions = (Aspose.Imaging.ImageOptions.VectorRasterizationOptions)image.GetDefaultOptions(new object[] { Color.White, image.Width, image.Height });
image.Save(outFile, new Aspose.Imaging.ImageOptions.PngOptions(){VectorRasterizationOptions = vectorRasterizationOptions});
}
}
此示例展示了如何使用 EmfRasterizationOptions 从文件加载 EMF 图像并将其转换为 SVG。
[C#]
string dir = "c:\\temp\\";
// 使用 Aspose.Imaging.Image.Load 是加载包括 EMF 在内的所有类型图像的统一方式。
using (Aspose.Imaging.FileFormats.Emf.EmfImage emfImage = (Aspose.Imaging.FileFormats.Emf.EmfImage)Aspose.Imaging.Image.Load(dir + "test.emf"))
{
Aspose.Imaging.ImageOptions.SvgOptions saveOptions = new Aspose.Imaging.ImageOptions.SvgOptions();
// 文本将被转换为形状。
saveOptions.TextAsShapes = true;
Aspose.Imaging.ImageOptions.EmfRasterizationOptions rasterizationOptions = new Aspose.Imaging.ImageOptions.EmfRasterizationOptions();
// 绘图表面的背景颜色。
rasterizationOptions.BackgroundColor = Aspose.Imaging.Color.WhiteSmoke;
// 页面大小。
rasterizationOptions.PageSize = emfImage.Size;
// 如果存在嵌入的 emf,则渲染 emf;否则渲染 wmf。
rasterizationOptions.RenderMode = Aspose.Imaging.FileFormats.Emf.EmfRenderMode.Auto;
// 设置水平边距
rasterizationOptions.BorderX = 50;
// 设置垂直边距
rasterizationOptions.BorderY = 50;
saveOptions.VectorRasterizationOptions = rasterizationOptions;
emfImage.Save(dir + "test.output.svg", saveOptions);
}
另请参见
- class MetaImage
- namespace Aspose.Imaging.FileFormats.Emf
- assembly Aspose.Imaging