WmfImage

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 class WmfImage extends MetaImage

تحكم في صور Microsoft Windows Metafile (WMF) باستخدام واجهة برمجة التطبيقات الخاصة بنا، مع معالجة سلسة لكل من البيانات المتجهة وبيانات البت المخزنة داخل سجلات ذات طول متغير. قم بتغيير حجم الصور، وتدويرها، وعكسها بسهولة مع ضبط لوحات ألوان مخصصة. حوِّل ملفات WMF إلى صيغ WMZ مضغوطة أو احفظها بصيغ صور نقطية للاستخدام المتعدد عبر المنصات والتطبيقات.

المنشئات

المنشئالوصف
WmfImage()أنشئ نسخة جديدة من الفئة WmfImage، مهيئًا إياها لمزيد من التلاعب ومعالجة بيانات صورة Windows Metafile (WMF).
WmfImage(int width, int height)أنشئ نسخة جديدة من الفئة WmfImage مع معلمات عرض وارتفاع قابلة للتخصيص، مما يسهل إنشاء صور WMF فارغة مخصصة لأبعاد محددة.

الطرق

طريقةالوصف
isCached()استرجع قيمة منطقية تشير إلى ما إذا كانت بيانات الكائن مخزنة مؤقتًا حاليًا، مما يلغي الحاجة إلى عمليات قراءة بيانات إضافية.
getBitsPerPixel()استرجع عدد البتات لكل بكسل في الصورة، مما يدل على مستوى عمق اللون أو الدقة.
getWidthF()الوصول إلى عرض الصورة، مما يدل على عدد البكسلات على المحور الأفقي.
getHeightF()الوصول إلى ارتفاع الصورة، مما يمثل عدد البكسلات على المحور الرأسي.
getInch()الوصول إلى خاصية البوصة أو تعديلها، والتي تمثل وحدة قياس تُستخدم عادةً لتحديد الأبعاد الفيزيائية في سياق الطباعة أو العرض.
setInch(int value)الوصول إلى خاصية البوصة أو تعديلها، والتي تمثل وحدة قياس تُستخدم عادةً لتحديد الأبعاد الفيزيائية في سياق الطباعة أو العرض.
getFileFormat()الوصول إلى قيمة تنسيق الملف المرتبط بالصورة، مما يوفر معلومات حول التنسيق الذي تُخزن به الصورة.
getFrameBounds()الوصول إلى حدود الإطار، مما يشير إلى موقعه وأبعاده داخل الصورة.
cacheData()قم بتخزين البيانات مؤقتًا بكفاءة، مما يلغي الحاجة إلى تحميل إضافي من DataStreamSupporter.DataStreamContainer(DataStreamSupporter.getDataStreamContainer).
setPalette(IColorPalette palette, boolean updateColors)طبق لوحة ألوان محددة على الصورة، مما يتيح تخصيص تمثيل الألوان.
getUsedFonts()استرجع قائمة الخطوط المستخدمة داخل ملف الميتا، مما يوفر نظرة على موارد الخطوط المستخدمة في الصورة.
resizeCanvas(Rectangle newRectangle)غيّر حجم لوحة الرسم للصورة، مع تعديل أبعادها مع الحفاظ على محتوى الصورة.
addRecord(WmfObject record)دمج كائن السجل المحدد في الصورة، مما يعزز محتواها ببيانات إضافية أو بيانات وصفية.
getPostScript()الوصول إلى بيانات PostScript المرتبطة بالصورة، مما يوفر معلومات مفصلة حول هيكلها أو محتواها.
getOriginalOptions()يحصل على خيارات الصورة الأصلية.

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

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

// استخدام Aspose.Imaging.Image.Load هو طريقة موحدة لتحميل جميع أنواع الصور بما في ذلك WMF.
try (com.aspose.imaging.fileformats.wmf.WmfImage wmfImage = (com.aspose.imaging.fileformats.wmf.WmfImage)com.aspose.imaging.Image.load(dir + "test.wmf"))
{
    com.aspose.imaging.imageoptions.SvgOptions saveOptions = new com.aspose.imaging.imageoptions.SvgOptions();
                    
    // سيتم تحويل النص إلى أشكال.
    saveOptions.setTextAsShapes(true);

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

    // لون الخلفية لسطح الرسم.
    rasterizationOptions.setBackgroundColor(com.aspose.imaging.Color.getWhiteSmoke());

    // حجم الصفحة.
    rasterizationOptions.setPageSize(Size.to_SizeF(wmfImage.getSize()));

    // إذا كان هناك emf مضمّن، فقم بعرض emf؛ وإلا عرض wmf.
    rasterizationOptions.setRenderMode(com.aspose.imaging.fileformats.wmf.WmfRenderMode.Auto);

    saveOptions.setVectorRasterizationOptions(rasterizationOptions);

    wmfImage.save(dir + "test.output.svg", saveOptions);
}

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 wmz images to wmf format

String file = "example.wmz";
String baseFolder = "D:\\Compressed\\";
String inputFile = baseFolder + file;
String outFile = inputFile + ".wmf";
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.WmfRasterizationOptions()
    {{
        setPageSize(com.aspose.imaging.Size.to_SizeF(image.getSize()));
    }};
                
    image.save(outFile, new com.aspose.imaging.imageoptions.WmfOptions()
    {{
        setVectorRasterizationOptions(vectorRasterizationOptions);
    }});
}

Example: The following example shows how to convert a wmf images to wmz format

String file = "castle.wmf";
String baseFolder = "D:\\Compressed\\";
String inputFile = baseFolder + file;
String outFile = inputFile + ".wmz";
try (com.aspose.imaging.Image image = com.aspose.imaging.Image.load(inputFile))
{
    com.aspose.imaging.imageoptions.VectorRasterizationOptions vectorRasterizationOptions = new com.aspose.imaging.imageoptions.WmfRasterizationOptions();
    vectorRasterizationOptions.setPageSize(com.aspose.imaging.Size.to_SizeF(image.getSize()));
    com.aspose.imaging.imageoptions.WmfOptions options = new com.aspose.imaging.imageoptions.WmfOptions();
    options.setVectorRasterizationOptions(vectorRasterizationOptions);
    options.setCompress(true);
    image.save(outFile, options);
}

WmfImage()

public WmfImage()

إنشاء نسخة جديدة من الفئة WmfImage، مع تهيئتها للمزيد من التلاعب ومعالجة بيانات صورة Windows Metafile (WMF). يوفر هذا المُنشئ كائنًا أساسيًا للعمل مع صور WMF، مما يتيح دمجًا سلسًا لإمكانات معالجة صور WMF في وظائف تطبيقك.

WmfImage(int width, int height)

public WmfImage(int width, int height)

إنشاء نسخة جديدة من الفئة WmfImage مع معلمات عرض وارتفاع قابلة للتخصيص، مما يسهل إنشاء صور WMF فارغة مخصصة لأبعاد محددة. استخدم هذا المُنشئ لتوليد صور WMF ديناميكيًا بأبعاد دقيقة، مما يتيح إنشاء وتعديل صور مرن داخل تطبيقك.

Parameters:

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

isCached()

public boolean isCached()

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

Returns: boolean

getBitsPerPixel()

public int getBitsPerPixel()

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

Returns: int

getWidthF()

public float getWidthF()

الوصول إلى عرض الصورة، الذي يشير إلى عدد البكسلات على المحور الأفقي. استخدم هذه الخاصية لتحديد أبعاد الصورة المكانية ونسبة العرض إلى الارتفاع، مما يتيح تعديل تخطيط ودقة العرض داخل تطبيقك.

Returns: float - عرض الصورة بالبكسل.

getHeightF()

public float getHeightF()

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

Returns: float - ارتفاع الصورة بالبكسل.

getInch()

public int getInch()

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

Returns: int

setInch(int value)

public void setInch(int value)

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

Parameters:

معاملنوعالوصف
القيمةint

getFileFormat()

public long getFileFormat()

الوصول إلى قيمة تنسيق الملف المرتبط بالصورة، والتي توفر معلومات حول التنسيق الذي تُخزن به الصورة. استخدم هذه الخاصية لتحديد تنسيق ملف الصورة، مما يسهل فحوص التوافق والمعالجة الخاصة بالتنسيق داخل تطبيقك.

Returns: long

getFrameBounds()

public final Rectangle getFrameBounds()

الوصول إلى حدود الإطار، التي تشير إلى موقعه وأبعاده داخل الصورة. استخدم هذه الخاصية لاسترجاع معلومات مفصلة عن الموقع المكاني للإطار، مما يتيح تعديلًا دقيقًا ومعالجة داخل تطبيقك.

Returns: Rectangle - the frame bounds.

cacheData()

public void cacheData()

تخزين البيانات مؤقتًا بكفاءة، مما يلغي الحاجة إلى تحميل إضافي من DataStreamSupporter.DataStreamContainer(DataStreamSupporter.getDataStreamContainer). استخدم هذه الطريقة لتحسين الأداء وتقليل استهلاك الموارد داخل تطبيقك عن طريق تخزين والوصول إلى ذاكرة التخزين المؤقت المحلية للبيانات.

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

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

// استخدام Aspose.Imaging.Image.Load هو طريقة موحدة لتحميل جميع أنواع الصور بما في ذلك WMF.
com.aspose.imaging.fileformats.wmf.WmfImage wmfImage = (com.aspose.imaging.fileformats.wmf.WmfImage) com.aspose.imaging.Image.load(dir + "test.wmf");
try {
    // تخزين البيانات مؤقتًا لتحميل جميع السجلات.
    wmfImage.cacheData();
    System.out.println("The total number of records: " + wmfImage.getRecords().size());

    // المفتاح هو نوع السجل، والقيمة هي عدد السجلات من ذلك النوع في صورة WMF.
    java.util.HashMap<Class, Integer> types = new java.util.HashMap<>();

    // جمع الإحصاءات
    for (Object obj : wmfImage.getRecords()) {
        com.aspose.imaging.fileformats.wmf.objects.WmfObject wmfObj = (com.aspose.imaging.fileformats.wmf.objects.WmfObject) obj;

        Class objType = wmfObj.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 {
    wmfImage.dispose();
}

//قد يبدو الإخراج هكذا:
//الإجمالي الكلي لعدد السجلات: 613
//نوع السجل                              العدد
//----------------------------------------------
//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

setPalette(IColorPalette palette, boolean updateColors)

public void setPalette(IColorPalette palette, boolean updateColors)

تطبيق لوحة ألوان محددة على الصورة، مما يتيح تخصيص تمثيل الألوان. استخدم هذه الطريقة لتحسين العرض البصري وتحقيق تأثيرات لونية محددة داخل تطبيقك.

Parameters:

معاملنوعالوصف
paletteIColorPaletteلوحة الألوان لتعيينها.
updateColorsbooleanإذا تم تعيينه إلى true سيتم تحديث الألوان وفقًا للوحة الألوان الجديدة؛ وإلا ستبقى فهارس الألوان دون تغيير. لاحظ أن الفهارس غير المتغيرة قد تتسبب في تعطل الصورة عند التحميل إذا لم يكن لبعض الفهارس إدخالات مطابقة في لوحة الألوان.

getUsedFonts()

public String[] getUsedFonts()

استرجاع قائمة الخطوط المستخدمة داخل ملف الميتا، مما يوفر نظرة على موارد الخطوط المستخدمة في الصورة. استخدم هذه الطريقة لتحليل استخدام الخطوط وضمان توفر الخطوط للعرض أو المعالجة الإضافية داخل تطبيقك.

Returns: java.lang.String[] - قائمة الخطوط

resizeCanvas(Rectangle newRectangle)

public void resizeCanvas(Rectangle newRectangle)

تغيير حجم لوحة الرسم للصورة، مع تعديل أبعادها مع الحفاظ على محتوى الصورة. استخدم هذه الطريقة لتعديل حجم اللوحة دون تغيير المحتوى، مما يسهل تعديل التخطيط وتغييرات التركيب داخل تطبيقك.

Parameters:

معاملنوعالوصف
newRectangleRectangleالمستطيل الجديد.

addRecord(WmfObject record)

public int addRecord(WmfObject record)

دمج كائن السجل المحدد في الصورة، مما يثري محتواها ببيانات إضافية أو بيانات وصفية. استخدم هذه الطريقة لدمج كائنات السجل بسلاسة في الصورة، مما يسهل تخزين البيانات بشكل شامل وتنظيمها داخل تطبيقك.

Parameters:

معاملنوعالوصف
recordWmfObjectالسجل.

Returns: int - عدد السجلات.

getPostScript()

public final String getPostScript()

الوصول إلى بيانات PostScript المرتبطة بالصورة، مع توفير معلومات مفصلة حول هيكلها أو محتواها. استخدم هذه الطريقة لاسترجاع بيانات PostScript لمزيد من التحليل أو المعالجة داخل تطبيقك، مما يتيح وظائف متقدمة متعلقة بعرض أو تعديل PostScript.

Returns: java.lang.String - نص PostScript

getOriginalOptions()

public ImageOptionsBase getOriginalOptions()

يحصل على خيارات الصورة الأصلية.

Returns: ImageOptionsBase - The original image options.