EmfImage

Inheritance: java.lang.Object, com.aspose.imaging.DisposableObject, com.aspose.imaging.DataStreamSupporter, com.aspose.imaging.Image, com.aspose.imaging.VectorImage, com.aspose.imaging.fileformats.emf.MetaImage

public final class EmfImage extends MetaImage

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

Конструкторы

КонструкторОписание
EmfImage()Начните работу с EMF‑изображениями, создав новый экземпляр класса EmfImage.
EmfImage(int width, int height)Создайте новый экземпляр класса EmfImage, указав параметры ширины и высоты.

Методы

МетодОписание
getHeader()Получите запись заголовка метафайла EMF с помощью этого свойства.
setHeader(EmfMetafileHeader value)Измените запись заголовка метафайла EMF с помощью этого свойства.
isCached()Получите значение, указывающее, кэшированы ли данные объекта в данный момент, исключая необходимость дополнительного чтения данных.
getRecords()Получайте или изменяйте записи, связанные с объектом.
setRecords(MetaObjectList value)Изменяйте записи, связанные с объектом.
getFileFormat()Получите значение формата файла, связанное с объектом.
getBitsPerPixel()Получите количество бит на пиксель, характерное для растровых изображений, поскольку этот параметр не применяется к векторным изображениям.
getWidthF()Получите доступ к ширине изображения, предоставляя важную информацию для точного рендеринга и обработки.
getHeightF()Получите высоту изображения, облегчая точный рендеринг и корректировку макета.
cacheData()Эффективно кэшируйте данные и предотвращайте избыточную загрузку из базового DataStreamSupporter.DataStreamContainer(DataStreamSupporter.getDataStreamContainer с помощью этого метода.
getUsedFonts()Получите список шрифтов, используемых в метафайле, с помощью этого метода.
resizeCanvas(Rectangle newRectangle)Изменяйте размер холста с легкостью, используя эту функцию.
getOriginalOptions()Получает исходные параметры изображения.
setPalette(IColorPalette palette, boolean updateColors)Устанавливает палитру изображения.

Example: This example shows how to load a EMF image from a file and convert it to SVG using EmfRasterizationOptions.

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

// Использование Aspose.Imaging.Image.Load — это единый способ загрузки всех типов изображений, включая EMF.
com.aspose.imaging.fileformats.emf.EmfImage emfImage = (com.aspose.imaging.fileformats.emf.EmfImage) com.aspose.imaging.Image.load(dir + "test.emf");
try {
    com.aspose.imaging.imageoptions.SvgOptions saveOptions = new com.aspose.imaging.imageoptions.SvgOptions();

    // Текст будет преобразован в фигуры.
    saveOptions.setTextAsShapes(true);

    com.aspose.imaging.imageoptions.EmfRasterizationOptions rasterizationOptions = new com.aspose.imaging.imageoptions.EmfRasterizationOptions();

    // Цвет фона поверхности рисования.
    rasterizationOptions.setBackgroundColor(com.aspose.imaging.Color.getWhiteSmoke());

    // Размер страницы.
    rasterizationOptions.setPageSize(new com.aspose.imaging.SizeF(emfImage.getWidth(), emfImage.getHeight()));

    // Если встроенный emf существует, отобразите emf; иначе отобразите wmf.
    rasterizationOptions.setRenderMode(com.aspose.imaging.fileformats.emf.EmfRenderMode.Auto);

    // Установите горизонтальный отступ
    rasterizationOptions.setBorderX(50);

    // Установите вертикальный отступ
    rasterizationOptions.setBorderY(50);

    saveOptions.setVectorRasterizationOptions(rasterizationOptions);

    emfImage.save(dir + "test.output.svg", saveOptions);
} finally {
    emfImage.dispose();
}

Example: The following example shows how to convert a compressed images (*.

Следующий пример показывает, как преобразовать сжатые изображения (.emz,.wmz, *.svgz) в растровый формат

String[] files = new String[]{ "example.emz", "example.wmz", "example.svgz" };
String baseFolder = "D:\\Compressed\\";
for(String file : files)
{
    String inputFile = (baseFolder + file);
    String outFile = inputFile + ".png";
    try (com.aspose.imaging.Image image = com.aspose.imaging.Image.load(inputFile))
    {
        final com.aspose.imaging.imageoptions.VectorRasterizationOptions vectorRasterizationOptions = 
                (com.aspose.imaging.imageoptions.VectorRasterizationOptions) image.getDefaultOptions(new Object[]{Color.getWhite(), image.getWidth(), image.getHeight()});
        image.save(outFile, new com.aspose.imaging.imageoptions.PngOptions()
        {{
            setVectorRasterizationOptions(vectorRasterizationOptions);
        }});
    }
}

Example: The following example shows how to convert a emz images to emf format

String file = "example.emz";
String baseFolder = "D:\\Compressed\\";
String inputFile = (baseFolder + file);
String outFile = inputFile + ".emf";
try (final com.aspose.imaging.Image image = com.aspose.imaging.Image.load(inputFile))
{
    final com.aspose.imaging.imageoptions.VectorRasterizationOptions vectorRasterizationOptions = new com.aspose.imaging.imageoptions.EmfRasterizationOptions()
    {{
        setPageSize(com.aspose.imaging.Size.to_SizeF(image.getSize()));
    }};
    image.save(outFile, new com.aspose.imaging.imageoptions.EmfOptions()
    {{
        setVectorRasterizationOptions(vectorRasterizationOptions);
    }});
}

Example: The following example shows how to convert a emf images to emz format

String file = "input.emf";
String baseFolder = "D:\\Compressed\\";
String inputFile = baseFolder + file;
String outFile = inputFile + ".emz";
try (com.aspose.imaging.Image image = com.aspose.imaging.Image.load(inputFile))
{
    com.aspose.imaging.imageoptions.VectorRasterizationOptions vectorRasterizationOptions = new com.aspose.imaging.imageoptions.EmfRasterizationOptions();
    vectorRasterizationOptions.setPageSize(com.aspose.imaging.Size.to_SizeF(image.getSize()));
    com.aspose.imaging.imageoptions.EmfOptions options = new com.aspose.imaging.imageoptions.EmfOptions();
    options.setVectorRasterizationOptions(vectorRasterizationOptions);
    options.setCompress(true);
    image.save(outFile, options);
}

EmfImage()

public EmfImage()

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

EmfImage(int width, int height)

public EmfImage(int width, int height)

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

Parameters:

ПараметрТипОписание
widthintШирина.
heightintВысота.

getHeader()

public EmfMetafileHeader getHeader()

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

Returns: EmfMetafileHeader

setHeader(EmfMetafileHeader value)

public void setHeader(EmfMetafileHeader value)

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

Parameters:

ПараметрТипОписание
valueEmfMetafileHeader

isCached()

public boolean isCached()

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

Returns: boolean — true, если данные объекта кэшированы; иначе false.

getRecords()

public MetaObjectList getRecords()

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

Returns: MetaObjectList - The records.

setRecords(MetaObjectList value)

public void setRecords(MetaObjectList value)

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

Parameters:

ПараметрТипОписание
valueMetaObjectListЗаписи.

getFileFormat()

public long getFileFormat()

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

Returns: long

getBitsPerPixel()

public int getBitsPerPixel()

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

Returns: int — Количество бит на пиксель изображения.

getWidthF()

public float getWidthF()

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

Returns: float — ширина изображения в пикселях.

getHeightF()

public float getHeightF()

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

Returns: float — высота изображения в пикселях.

cacheData()

public void cacheData()

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

Example: This example shows how to load a EMF image from a file and list all of its records.

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

// Использование Aspose.Imaging.Image.Load — единый способ загрузки всех типов изображений, включая WMF.
com.aspose.imaging.fileformats.emf.EmfImage emfImage = (com.aspose.imaging.fileformats.emf.EmfImage) com.aspose.imaging.Image.load(dir + "test.emf");
try {
    // Кэшировать данные для загрузки всех записей.
    emfImage.cacheData();
    System.out.println("The total number of records: " + emfImage.getRecords().size());

    // Ключ — тип записи, значение — количество записей данного типа в WMF‑изображении.
    java.util.HashMap<Class, Integer> types =
            new java.util.HashMap<>();

    // Собрать статистику
    for (Object obj : emfImage.getRecords()) {
        com.aspose.imaging.fileformats.emf.emf.records.EmfRecord record = (com.aspose.imaging.fileformats.emf.emf.records.EmfRecord) obj;

        Class objType = record.getClass();
        if (!types.containsKey(objType)) {
            types.put(objType, 1);
        } else {
            int n = types.get(objType);
            types.put(objType, n + 1);
        }
    }

    // Вывести статистику
    System.out.println("Record Type                              Count");
    System.out.println("----------------------------------------------");
    for (java.util.Map.Entry<Class, Integer> entry : types.entrySet()) {
        String objectType = entry.getKey().getSimpleName();
        int numberOfEntrances = entry.getValue();

        // Выровнять вывод пробелами
        int alignmentPos = 40;
        char[] chars = new char[alignmentPos - objectType.length()];
        java.util.Arrays.fill(chars, ' ');
        String gap = new String(chars);

        System.out.println(objectType + ":" + gap + numberOfEntrances);
    }
} finally {
    emfImage.dispose();
}

//Вывод может выглядеть так:
//Общее количество записей: 1188
//Тип записи                              Количество
//----------------------------------------------
//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

getUsedFonts()

public String[] getUsedFonts()

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

Returns: java.lang.String[] - Список шрифтов

resizeCanvas(Rectangle newRectangle)

public void resizeCanvas(Rectangle newRectangle)

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

Parameters:

ПараметрТипОписание
newRectangleRectangleНовый прямоугольник.

getOriginalOptions()

public ImageOptionsBase getOriginalOptions()

Получает исходные параметры изображения.

Returns: ImageOptionsBase - The original image options.

setPalette(IColorPalette palette, boolean updateColors)

public void setPalette(IColorPalette palette, boolean updateColors)

Устанавливает палитру изображения.

Parameters:

ПараметрТипОписание
paletteIColorPaletteПалитра для установки.
updateColorsbooleanЕсли установить значение true, цвета будут обновлены в соответствии с новой палитрой; в противном случае индексы цветов останутся неизменными. Обратите внимание, что неизменные индексы могут привести к сбою изображения при загрузке, если некоторые индексы не имеют соответствующих записей в палитре.