Class EmfImage

Class EmfImage

Название пространства: Aspose.Imaging.FileFormats.Emf Ассоциация: Aspose.Imaging.dll (25.4.0)

API для расширенного формата метафила (EMF) векторная поддержка формата изображенияКомплексный инструмент для обработки графических изображений в независимом устройствекак при сохранении своих первоначальных свойств. разработан для поддержанияпропорции, размеры, цвета и другие графические атрибуты, включаяПомощь в формате EMF Plus и функции для сельскохозяйственных регионов, рецидивови изображения, ротация, флипирование, настройка палетов изображений, экспорт и импортКонтекст устройства APS, компрессирование и конвертирование EMF в другие форматы, обеспечиваяуниверсальная манипуляция и беспристрастная интеграция изображений EMF в приложениях.

[JsonObject(MemberSerialization.OptIn)]
public sealed class EmfImage : MetaImage, IDisposable, IObjectWithBounds, IObjectWithSizeF

Inheritance

object DisposableObject DataStreamSupporter Image VectorImage MetaImage EmfImage

Implements

IDisposable , IObjectWithBounds , IObjectWithSizeF

Наследованные члены

MetaImage.GetUsedFonts() , MetaImage.GetMissedFonts() , MetaImage.ResizeCanvas(Rectangle) , MetaImage.Records , 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.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.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.CacheData() , DataStreamSupporter.Save() , DataStreamSupporter.Save(Stream) , DataStreamSupporter.Save(string) , DataStreamSupporter.Save(string, bool) , DataStreamSupporter.DataStreamContainer , DataStreamSupporter.IsCached , DisposableObject.Dispose() , DisposableObject.Disposed , object.GetType() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()

Examples

Следующий пример показывает, как конвертировать изображения emz в emf fromat

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 fromat

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) для растер отрат

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});
                                                                                                                    }
                                                                                                                }

Этот пример показывает, как загрузить изображение EMF из файла и конвертировать его в SVG с помощью опций EmfRasterizationOptions.

string dir = "c:\\temp\\";

                                                                                                                      // Using Aspose.Imaging.Image.Load is a unified way to load all types of images including 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();

                                                                                                                          // Text will be converted to shapes.
                                                                                                                          saveOptions.TextAsShapes = true;

                                                                                                                          Aspose.Imaging.ImageOptions.EmfRasterizationOptions rasterizationOptions = new Aspose.Imaging.ImageOptions.EmfRasterizationOptions();

                                                                                                                          // The background color of the drawing surface.
                                                                                                                          rasterizationOptions.BackgroundColor = Aspose.Imaging.Color.WhiteSmoke;

                                                                                                                          // The page size.
                                                                                                                          rasterizationOptions.PageSize = emfImage.Size;

                                                                                                                          // If embedded emf exists, then render emf; otherwise render wmf.
                                                                                                                          rasterizationOptions.RenderMode = Aspose.Imaging.FileFormats.Emf.EmfRenderMode.Auto;

                                                                                                                          // Set the horizontal margin
                                                                                                                          rasterizationOptions.BorderX = 50;

                                                                                                                          // Set the vertical margin
                                                                                                                          rasterizationOptions.BorderY = 50;

                                                                                                                          saveOptions.VectorRasterizationOptions = rasterizationOptions;

                                                                                                                          emfImage.Save(dir + "test.output.svg", saveOptions);
                                                                                                                      }

Constructors

EmfImage()

Начните работать с изображениями EMF, инициируя новую инстанциюAspose.Imaging.FileFormats.Emf. EmfImage класс. Идеально подходит для быстрого включения изображений EMF вВаши проекты с легкостью и эффективностью.

[JsonConstructor]
public EmfImage()

EmfImage(Инт, Инт)

Создайте новую инстанцию класса Aspose.Imaging.FileFormats.Emf. EmfImage, указав ширинуи параметры высоты. этот конструктор упрощает процесс инициированияEMF изображения с конкретными измерениями, повышая эффективность вашего развитияРабочий поток .

public EmfImage(int width, int height)

Parameters

width int

и широты .

height int

и высоты .

Properties

BitsPerPixel

Установите число бит-по-пикселя, специфическое для изображений растер, так как этот параметрне применяется к векторным изображениям. быстро установить пиксельную глубину растераизображения для точного анализа и манипуляции, обеспечивая точную обработкуИзображения данных.

public override int BitsPerPixel { get; }

Стоимость недвижимости

int

Exceptions

NotImplementedException

Инвалид для векторных изображений.

FileFormat

Доступ к стоимости формата файла, связанной с объектом.формат файла, связанный с объектом для упрощенной обработки иПроверки совместимости. Упростить рабочий поток, получая формат файлаИнформация с легкостью.

public override FileFormat FileFormat { get; }

Стоимость недвижимости

FileFormat

Header

Реставрировать или модифицировать заголовок метафилов EMF с этой собственностью.Управление метафильными данными эффективно в вашем приложении.Улучшить рабочий потокс ускоренным доступом к метафильной информации заголовка.

public EmfMetafileHeader Header { get; set; }

Стоимость недвижимости

EmfMetafileHeader

ВысотаF

Восстановите высоту изображения, облегчая точные настройки рендера и расположения.Доступ к высотному объекту обеспечивает совместимость и беспроводную интеграцию междуРазные платформы и приложения.

public override float HeightF { get; }

Стоимость недвижимости

float

IsCached

Доступ к значению, указывающему, что данные объекта в настоящее время скрыты,устранение необходимости дополнительного чтения данных.Улучшение эффективности путем быстрогоопределить, доступны ли кешные данные для немедленного доступа. оптимизироватьрабочий поток с ускоренными процессами восстановления данных.

public override bool IsCached { get; }

Стоимость недвижимости

bool

Records

восстановление или изменение записей, связанных с объектом. эффективный доступ иУправление сборкой записей для усовершенствованной манипуляции и обработки данных.Оптимизируйте свой рабочий поток, беспрепятственно взаимодействуя с записями объекта.

public override MetaObjectList Records { get; set; }

Стоимость недвижимости

MetaObjectList

ВВДФ

Доступ к ширине изображения, предоставляя необходимую информацию для точностиrendering и обработка. быстро восстанавливать ширину изображения для обеспечения совместимостиадекватное расположение в различных приложениях и платформах.

public override float WidthF { get; }

Стоимость недвижимости

float

Methods

CacheData()

Эффективно скрывать данные и предотвращать редунантное зарядное загрузку из основнойAspose.Imaging.DataStreamSupporter.datastreamContainer с этим методом.производительность и упрощенный доступ к данным в вашем приложении, оптимизация ресурсовИспользование для повышенной реакции.

public override void CacheData()

Examples

Этот пример показывает, как загрузить изображение EMF из файла и перечислить все его записи.

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,>

GetDefaultOptions(Объекты[])

Отстраивайте предпочтительные варианты для вашего изображения без труда. с этой функцией выможет быстро получить доступ к предварительно установленным конфигурациям, обеспечивая беспроводную интеграцию иоптимальная производительность для ваших проектов. идеально подходит для упрощения вашего рабочего потока иПолучение последовательных результатов по своим изображениям.

public override ImageOptionsBase GetDefaultOptions(object[] args)

Parameters

args object [ ]

и аргументов .

Returns

ImageOptionsBase

Стандартные варианты

GetOriginalOptions()

Получите оригинальные варианты изображения.

public override ImageOptionsBase GetOriginalOptions()

Returns

ImageOptionsBase

Оригинальные варианты изображения.

GetUsedFonts()

Обратитесь к списку шрифтов, используемых в метафиле с помощью этого метода.Внимание к использованию шрифта, способствующее эффективному управлению и оптимизацииресурсы для повышения рендерации и показывания лояльности.

public override string[] GetUsedFonts()

Returns

string [ ]

список шрифтов

ResizeCanvas(Rectangle)

Рециркулируйте каналы с легкостью, используя эту функцию. Идеально подходит для корректировки общегоразмеры изображения без изменения его содержания.Улучшение презентации иПодготовить изображения для различных размеров дисплея без труда.

public override void ResizeCanvas(Rectangle newRectangle)

Parameters

newRectangle Rectangle

Новый прямоугольник.

SetPalette(Иосиф Палет, Боол)

Сделайте палету изображения.

public override void SetPalette(IColorPalette palette, bool updateColors)

Parameters

palette IColorPalette

Палеты для установки.

updateColors bool

Если настроены на “истинные” цвета будут обновлены в соответствии с новым палетом; в противном случае индексы цвета остаются неизменными. Обратите внимание, что неизменные индексы могут разрушить изображение на загрузке, если некоторые индексы не имеют соответствующих палетных входов.

Exceptions

NotImplementedException

 Русский