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

واجهة برمجة التطبيقات لدعم تنسيق صورة المتجهات (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:

معاملنوعالوصف
العرضintالعرض.
الارتفاعintالارتفاع.

getHeader()

public EmfMetafileHeader getHeader()

استرجع سجل رأس ملف التعريف EMF باستخدام هذه الخاصية. مثالية لإدارة بيانات ملف التعريف بكفاءة داخل تطبيقك. حسّن سير عملك من خلال وصول مبسط إلى معلومات رأس ملف التعريف.

Returns: EmfMetafileHeader

setHeader(EmfMetafileHeader value)

public void setHeader(EmfMetafileHeader value)

عدّل سجل رأس ملف التعريف EMF باستخدام هذه الخاصية. مثالية لإدارة بيانات ملف التعريف بكفاءة داخل تطبيقك. حسّن سير عملك من خلال وصول مبسط إلى معلومات رأس ملف التعريف.

Parameters:

معاملنوعالوصف
valueEmfMetafileHeader

isCached()

public boolean isCached()

احصل على قيمة تُظهر ما إذا كانت بيانات الكائن مخزنة مؤقتًا حاليًا، مما يلغي الحاجة إلى قراءة بيانات إضافية. عزّز الكفاءة من خلال تحديد سريع ما إذا كانت البيانات المخزنة متاحة للوصول الفوري. حسّن سير عملك عبر عمليات استرجاع بيانات مبسطة.

Returns: منطقي - 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 سيتم تحديث الألوان وفقًا للوحة الألوان الجديدة؛ وإلا ستبقى فهارس الألوان دون تغيير. لاحظ أن الفهارس غير المتغيرة قد تتسبب في تعطل الصورة عند التحميل إذا لم يكن لبعض الفهارس إدخالات مطابقة في لوحة الألوان.