Class MetaImage
Tên không gian: Aspose.Imaging.FileFormats.Emf Tổng hợp: Aspose.Imaging.dll (25.4.0)
Lớp cơ bản cho Meta Object Class
[JsonObject(MemberSerialization.OptIn)]
public abstract class MetaImage : VectorImage, IDisposable, IObjectWithBounds, IObjectWithSizeF
Inheritance
object ← DisposableObject ← DataStreamSupporter ← Image ← VectorImage ← MetaImage
Derived
Implements
IDisposable , IObjectWithBounds , IObjectWithSizeF
Thành viên thừa kế
VectorImage.GetEmbeddedImages() , VectorImage.RemoveBackground() , VectorImage.RemoveBackground(RemoveBackgroundSettings) , VectorImage.Resize(int, int, ResizeType) , VectorImage.Resize(int, int, ImageResizeSettings) , VectorImage.RotateFlip(RotateFlipType) , VectorImage.Crop(Rectangle) , VectorImage.Rotate(float) , VectorImage.Modify(RectangleF, float, float, float) , VectorImage.SizeF , VectorImage.WidthF , VectorImage.HeightF , VectorImage.Width , VectorImage.Height , Image.CanLoad(string) , Image.CanLoad(string, LoadOptions) , Image.CanLoad(Stream) , Image.CanLoad(Stream, LoadOptions) , Image.Create(ImageOptionsBase, int, int) , Image.Create(Image[]) , Image.Create(MultipageCreateOptions) , Image.Create(string[], bool) , Image.Create(string[]) , Image.Create(Image[], bool) , Image.GetFileFormat(string) , Image.GetFileFormat(Stream) , Image.GetFittingRectangle(Rectangle, int, int) , Image.GetFittingRectangle(Rectangle, int[], int, int) , Image.Load(string, LoadOptions) , Image.Load(string) , Image.Load(Stream, LoadOptions) , Image.Load(Stream) , Image.GetProportionalWidth(int, int, int) , Image.GetProportionalHeight(int, int, int) , Image.RemoveMetadata() , Image.CanSave(ImageOptionsBase) , Image.Resize(int, int) , Image.Resize(int, int, ResizeType) , Image.Resize(int, int, ImageResizeSettings) , Image.GetDefaultOptions(object[]) , Image.GetOriginalOptions() , Image.ResizeWidthProportionally(int) , Image.ResizeHeightProportionally(int) , Image.ResizeWidthProportionally(int, ResizeType) , Image.ResizeHeightProportionally(int, ResizeType) , Image.ResizeWidthProportionally(int, ImageResizeSettings) , Image.ResizeHeightProportionally(int, ImageResizeSettings) , Image.RotateFlip(RotateFlipType) , Image.Rotate(float) , Image.Crop(Rectangle) , Image.Crop(int, int, int, int) , Image.Save() , Image.Save(string) , Image.Save(string, ImageOptionsBase) , Image.Save(string, ImageOptionsBase, Rectangle) , Image.Save(Stream, ImageOptionsBase) , Image.Save(Stream, ImageOptionsBase, Rectangle) , Image.GetSerializedStream(ImageOptionsBase, Rectangle, out int) , Image.SetPalette(IColorPalette, bool) , Image.UpdateContainer(Image) , Image.GetCanNotSaveMessage(ImageOptionsBase) , Image.GetFitRectangle(Rectangle) , Image.GetImage2Export(ImageOptionsBase, Rectangle, IImageExporter) , Image.GetFitRectangle(Rectangle, int[]) , Image.OnPaletteChanged(IColorPalette, IColorPalette) , Image.OnPaletteChanging(IColorPalette, IColorPalette) , Image.ReleaseManagedResources() , Image.BitsPerPixel , Image.Bounds , Image.Container , Image.Height , Image.Palette , Image.UsePalette , Image.Size , Image.Width , Image.InterruptMonitor , Image.BufferSizeHint , Image.AutoAdjustPalette , Image.HasBackgroundColor , Image.FileFormat , Image.BackgroundColor , DataStreamSupporter.timeout , DataStreamSupporter.CacheData() , DataStreamSupporter.Save() , DataStreamSupporter.Save(Stream) , DataStreamSupporter.Save(string) , DataStreamSupporter.Save(string, bool) , DataStreamSupporter.SaveData(Stream) , DataStreamSupporter.ReleaseManagedResources() , DataStreamSupporter.OnDataStreamContainerChanging(StreamContainer) , DataStreamSupporter.DataStreamContainer , DataStreamSupporter.IsCached , DisposableObject.Dispose() , DisposableObject.ReleaseManagedResources() , DisposableObject.ReleaseUnmanagedResources() , DisposableObject.VerifyNotDisposed() , DisposableObject.Disposed , object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()
Constructors
MetaImage()
Bắt đầu một ví dụ mới của Aspose.Imaging.FileFormats.Emf.MetaImage.
public MetaImage()
Properties
Records
Nhận hoặc đặt các hồ sơ.
public virtual MetaObjectList Records { get; set; }
Giá trị bất động sản
Examples
Ví dụ này cho thấy cách tải một hình ảnh WMF từ một tệp và liệt kê tất cả các bản ghi của nó.
string dir = "c:\\temp\\";
// Using Aspose.Imaging.Image.Load is a unified way to load all types of images including WMF.
using (Aspose.Imaging.FileFormats.Wmf.WmfImage wmfImage = (Aspose.Imaging.FileFormats.Wmf.WmfImage)Aspose.Imaging.Image.Load(dir + "test.wmf"))
{
// Cache data to load all records.
wmfImage.CacheData();
System.Console.WriteLine("The total number of records: {0}", wmfImage.Records.Count);
// The key is a record type, the value is number of records of that type in the WMF image.
System.Collections.Generic.Dictionary<system.type, int=""> types =
new System.Collections.Generic.Dictionary<system.type, int="">();
// Gather statistics
foreach (Aspose.Imaging.FileFormats.Wmf.Objects.WmfObject obj in wmfImage.Records)
{
System.Type objType = obj.GetType();
if (!types.ContainsKey(objType))
{
types.Add(objType, 1);
}
else
{
types[objType]++;
}
}
// Print statistics
System.Console.WriteLine("Record Type Count");
System.Console.WriteLine("----------------------------------------------");
foreach (System.Collections.Generic.KeyValuePair<system.type, int=""> entry in types)
{
string objectType = entry.Key.Name;
string alignmentGap = new string(' ', 40 - objectType.Length);
System.Console.WriteLine("{0}:{1}{2}", entry.Key.Name, alignmentGap, entry.Value);
}
}
//The output may look like this:
//The total number of records: 613
//Record Type Count
//----------------------------------------------
//WmfSetBkMode: 1
//WmfSetTextAlign: 1
//WmfSetRop2: 1
//WmfSetWindowOrg: 1
//WmfSetWindowExt: 1
//WmfCreateBrushInDirect: 119
//WmfSelectObject: 240
//WmfCreatePenInDirect: 119
//WmfSetPolyFillMode: 1
//WmfPolyPolygon: 114
//WmfPolyLine: 7
//WmfSetTextColor: 2
//WmfCreateFontInDirect: 2
//WmfExtTextOut: 2
//WmfDibStrechBlt: 1
//WmfEof: 1</system.type,></system.type,></system.type,>
Ví dụ này cho thấy cách tải một hình ảnh EMF từ một tệp và liệt kê tất cả các bản ghi của nó.
string dir = "c:\\temp\\";
// Using Aspose.Imaging.Image.Load is a unified way to load all types of images including WMF.
using (Aspose.Imaging.FileFormats.Emf.EmfImage emfImage = (Aspose.Imaging.FileFormats.Emf.EmfImage)Aspose.Imaging.Image.Load(dir + "test.emf"))
{
// Cache data to load all records.
emfImage.CacheData();
System.Console.WriteLine("The total number of records: {0}", emfImage.Records.Count);
// The key is a record type, the value is number of records of that type in the WMF image.
System.Collections.Generic.Dictionary<system.type, int=""> types =
new System.Collections.Generic.Dictionary<system.type, int="">();
// Gather statistics
foreach (Aspose.Imaging.FileFormats.Emf.Emf.Records.EmfRecord obj in emfImage.Records)
{
System.Type objType = obj.GetType();
if (!types.ContainsKey(objType))
{
types.Add(objType, 1);
}
else
{
types[objType]++;
}
}
// Print statistics
System.Console.WriteLine("Record Type Count");
System.Console.WriteLine("----------------------------------------------");
foreach (System.Collections.Generic.KeyValuePair<system.type, int=""> entry in types)
{
string objectType = entry.Key.Name;
string alignmentGap = new string(' ', 40 - objectType.Length);
System.Console.WriteLine("{0}:{1}{2}", entry.Key.Name, alignmentGap, entry.Value);
}
}
//The output may look like this:
//The total number of records: 1188
//Record Type Count
//----------------------------------------------
//EmfMetafileHeader: 1
//EmfSetBkMode: 1
//EmfSetTextAlign: 1
//EmfSetRop2: 1
//EmfSetWorldTransform: 1
//EmfExtSelectClipRgn: 1
//EmfCreateBrushIndirect: 113
//EmfSelectObject: 240
//EmfCreatePen: 116
//EmfSetPolyFillMode: 1
//EmfBeginPath: 120
//EmfMoveToEx: 122
//EmfPolyBezierTo16: 36
//EmfLineTo: 172
//EmfCloseFigure: 14
//EmfEndPath: 120
//EmfStrokeAndFillPath: 113
//EmfStrokePath: 7
//EmfSetTextColor: 2
//EmfExtCreateFontIndirectW: 2
//EmfExtTextOutW: 2
//EmfStretchBlt: 1
//EmfEof: 1</system.type,></system.type,></system.type,>
Methods
GetCanNotSaveMessage(ImageOptionsBase)
Gets người không thể lưu tin nhắn.
protected override string GetCanNotSaveMessage(ImageOptionsBase optionsBase)
Parameters
optionsBase
ImageOptionsBase
Các tùy chọn hình ảnh.
Returns
Nó không thể tiết kiệm tin nhắn.
GetMissedFonts()
Quay lại danh sách các phông chữ được sử dụng bên trong metaphile nhưng không được tìm thấy.
public string[] GetMissedFonts()
Returns
string [ ]
Danh sách font
Examples
Ví dụ sau đây cho thấy cách in thông tin về các phông chữ được sử dụng và bị bỏ lỡ trong hình ảnh WMF/EMF.
string dir = "c:\\aspose.imaging\\net\\issues\\3544";
// To make all fonts unaccessable
string[] fontDirectories = Aspose.Imaging.FontSettings.GetFontsFolders();
Aspose.Imaging.FontSettings.SetFontsFolder("empty");
string[] files = new string[]
{
"TestWmfText.wmf",
"TestEmfFonts.emf",
"TestEmfPlusFonts.emf",
};
try
{
foreach (string file in files)
{
System.Console.WriteLine("========== {0} ==========", file);
using (Aspose.Imaging.FileFormats.Emf.MetaImage image = (Aspose.Imaging.FileFormats.Emf.MetaImage)Aspose.Imaging.Image.Load(System.IO.Path.Combine(dir, file)))
{
string[] used = image.GetUsedFonts();
foreach (string it in used)
{
System.Console.WriteLine("Used font: " + it);
}
string[] missed = image.GetMissedFonts();
foreach (string it in missed)
{
System.Console.WriteLine("Missed font: " + it);
}
int ui = 0, mi = 0;
foreach (string it in used)
{
if (it.Contains("Times"))
{
ui++;
continue;
}
if (used[ui] != missed[mi])
{
throw new System.Exception("Font lists must be equal!");
}
ui++; mi++;
}
}
}
}
finally
{
Aspose.Imaging.FontSettings.SetFontsFolders(fontDirectories, true);
}
// The STDOUT log may look like this:
//========== TestWmfText.wmf ==========
//Used font: Garamond
//Used font: Arial
//Used font: Bookman Old Style
//Used font: Comic Sans MS
//Used font: Courier
//Used font: Courier New
//Used font: Impact
//Used font: Modern
//Used font: MS Sans Serif
//Used font: MS Serif
//Used font: Small Fonts
//Used font: Symbol
//Used font: Tahoma
//Used font: Times New Roman
//Used font: Verdana
//Used font: Wingdings
//Missed font: Garamond
//Missed font: Arial
//Missed font: Bookman Old Style
//Missed font: Comic Sans MS
//Missed font: Courier
//Missed font: Courier New
//Missed font: Impact
//Missed font: Modern
//Missed font: MS Sans Serif
//Missed font: MS Serif
//Missed font: Small Fonts
//Missed font: Symbol
//Missed font: Tahoma
//Missed font: Verdana
//Missed font: Wingdings
//========== TestEmfFonts.emf ==========
//Used font: Arial
//Used font: Verdana
//Used font: Times New Roman
//Used font: Symbol
//Missed font: Arial
//Missed font: Verdana
//Missed font: Symbol
//========== TestEmfPlusFonts.emf ==========
//Used font: MICROSOFT SANS SERIF
//Missed font: MICROSOFT SANS SERIF
GetUsedFonts()
Quay lại danh sách các phông chữ được sử dụng bên trong metaphile.
public abstract string[] GetUsedFonts()
Returns
string [ ]
Danh sách font
Examples
Ví dụ sau đây cho thấy cách in thông tin về các phông chữ được sử dụng và bị bỏ lỡ trong hình ảnh WMF/EMF.
string dir = "c:\\aspose.imaging\\net\\issues\\3544";
// To make all fonts unaccessable
string[] fontDirectories = Aspose.Imaging.FontSettings.GetFontsFolders();
Aspose.Imaging.FontSettings.SetFontsFolder("empty");
string[] files = new string[]
{
"TestWmfText.wmf",
"TestEmfFonts.emf",
"TestEmfPlusFonts.emf",
};
try
{
foreach (string file in files)
{
System.Console.WriteLine("========== {0} ==========", file);
using (Aspose.Imaging.FileFormats.Emf.MetaImage image = (Aspose.Imaging.FileFormats.Emf.MetaImage)Aspose.Imaging.Image.Load(System.IO.Path.Combine(dir, file)))
{
string[] used = image.GetUsedFonts();
foreach (string it in used)
{
System.Console.WriteLine("Used font: " + it);
}
string[] missed = image.GetMissedFonts();
foreach (string it in missed)
{
System.Console.WriteLine("Missed font: " + it);
}
int ui = 0, mi = 0;
foreach (string it in used)
{
if (it.Contains("Times"))
{
ui++;
continue;
}
if (used[ui] != missed[mi])
{
throw new System.Exception("Font lists must be equal!");
}
ui++; mi++;
}
}
}
}
finally
{
Aspose.Imaging.FontSettings.SetFontsFolders(fontDirectories, true);
}
// The STDOUT log may look like this:
//========== TestWmfText.wmf ==========
//Used font: Garamond
//Used font: Arial
//Used font: Bookman Old Style
//Used font: Comic Sans MS
//Used font: Courier
//Used font: Courier New
//Used font: Impact
//Used font: Modern
//Used font: MS Sans Serif
//Used font: MS Serif
//Used font: Small Fonts
//Used font: Symbol
//Used font: Tahoma
//Used font: Times New Roman
//Used font: Verdana
//Used font: Wingdings
//Missed font: Garamond
//Missed font: Arial
//Missed font: Bookman Old Style
//Missed font: Comic Sans MS
//Missed font: Courier
//Missed font: Courier New
//Missed font: Impact
//Missed font: Modern
//Missed font: MS Sans Serif
//Missed font: MS Serif
//Missed font: Small Fonts
//Missed font: Symbol
//Missed font: Tahoma
//Missed font: Verdana
//Missed font: Wingdings
//========== TestEmfFonts.emf ==========
//Used font: Arial
//Used font: Verdana
//Used font: Times New Roman
//Used font: Symbol
//Missed font: Arial
//Missed font: Verdana
//Missed font: Symbol
//========== TestEmfPlusFonts.emf ==========
//Used font: MICROSOFT SANS SERIF
//Missed font: MICROSOFT SANS SERIF
ResizeCanvas(Rectangle)
Tải lại canvas.
public abstract void ResizeCanvas(Rectangle newRectangle)
Parameters
newRectangle
Rectangle
Mục đích mới.
Examples
Ví dụ sau đây cho thấy làm thế nào để thêm một biên giới với các ranh giới cụ thể xung quanh một metaphile (WMF và EMF).
int borderLeft = 50;
int borderTop = 50;
int borderRight = 50;
int borderBottom = 50;
string dir = "c:\\aspose.imaging\\issues\\net\\3280\\";
string[] fileNames = new[] { "image1.emf", "image2.wmf" };
foreach (string fileName in fileNames)
{
string inputFilePath = dir + fileName;
string outputFilePath = dir + "AddBorder_" + fileName;
using (Aspose.Imaging.FileFormats.Emf.MetaImage image = (Aspose.Imaging.FileFormats.Emf.MetaImage)Aspose.Imaging.Image.Load(inputFilePath))
{
image.ResizeCanvas(new Aspose.Imaging.Rectangle(-borderLeft, -borderTop, image.Width + borderLeft + borderRight, image.Height + borderTop + borderBottom));
image.Save(outputFilePath);
}
}
SaveData(Stream)
Lưu dữ liệu để xác định stream'.
protected override sealed void SaveData(Stream stream)
Parameters
stream
Stream
dòng chảy