ما هو ملف EMF؟
** يخزن تنسيق ملف التعريف المحسن (EMF) ** الصور الرسومية بشكل مستقل عن الجهاز. تتكون ملفات تعريف EMF من سجلات متغيرة الطول بترتيب زمني يمكن أن تعرض الصورة المخزنة بعد التحليل على أي جهاز إخراج. يمكن أن تكون هذه السجلات ذات الطول المتغير تعريفات للكائنات المغلقة وأوامر للرسم وخصائص للرسومات ضرورية لتقديم الصورة بدقة. عندما يفتح جهاز ملف تعريف EMF باستخدام بيئة الرسومات الخاصة به ، تظل النسب والأبعاد والألوان وخصائص الرسوم الأخرى للصورة الأصلية كما هي بغض النظر عن النظام الأساسي للجهاز المفتوح.
نبذة تاريخية
في عام 1990 ، صممت Microsoft تنسيق ملف صورة Windows Metafile (WMF) لنظام التشغيل Microsoft Windows. ملفات تعريف Windows عبارة عن تنسيق 16 بت قد يحتوي على بعض مكونات الصور النقطية. قد يتكون WMF من رسومات متجهة ويهدف إلى الحفاظ على التنقل بين التطبيقات المختلفة. في عام 1993 ، أعلنت Win32 / GDI عن ملف التعريف المحسن (EMF) ، وهو إصدار أحدث يتميز بالمرونة والقابلية للتوسع. تستخدم EMF أيضًا كأوامر لغة الرسومات لتشغيل برامج تشغيل الطابعة. توصي Microsoft الآن بتنسيق ملف التعريف المحسن (EMF) عبر تنسيق Windows (WMF). عندما تم تقديم Windows XP ، تم إطلاق إصدار Enhanced Metafile Format Plus (EMF +). يجد هذا الإصدار الأحدث طريقه عن طريق إجراء تسلسل لمكالمات GDI + API ، وبالمثل ، يقوم WMF / EMF بتسجيل المكالمات إلى GDI. توجد نسخة مضغوطة بتنسيق gzip من EMF تُعرف باسم EMZ.
تنسيق ملف تعريف EMF
فيما يلي العناصر الأساسية لتنسيق ملف التعريف المحسن:
- EMR_HEADER (الإصدار ، الحجم ، دقة الصورة عند الإنشاء)
- جدول لكائنات GDI
- لوحة محجوزة (اختياري)
- ملفات التعريف مرتبة في بنية مجموعة (إعدادات الخاصية ، الكائنات المحددة ، أوامر الرسم)
- سجل EMR_EOF (آخر سجل في ملف تعريف EMF)
إصدارات EMF
- ** الأصل **: النسخة الأصلية تحدد السجل الضروري للاحتفاظ بالصورة الأصلية والحفاظ على استقلالها عن الجهاز. علاوة على ذلك يدعم السجل الذي يحتوي على كائنات رسومية وأوامر للرسم.
- ** الإصدار 1 **: أدى الإصدار الثاني من EMF إلى تحسين المرونة واستقلالية الجهاز عن طريق إضافة سجل لتنسيق البكسل وتوفير استخدام أمر OpenGL.
- ** الإصدار 2 **: عزز الإصدار الثالث الدقة بإضافة النظام المتري لقياس مسافات سطح الجهاز ، مما يجعل السجل أكثر قابلية للتوسع.
سجلات ملف التعريف المحسنة
يتم ترتيب سجلات ملف التعريف في شكل صفيف. تحتوي هذه السجلات على بنية ENHMETARECORD ومتغيرة الطول. يحدد ENHMETARECORD البيانات التي تحدد وظائف GDI لإنشاء صورة باستخدام تنسيق ملف تعريف محسّن. هيكل ** ENHMETAHEADER ** هو دائمًا السجل الأول في هذا التنسيق. يحتوي رأس EMF هذا على المعلومات التالية.
يحتوي كل سجل من ملف التعريف المحسن على عضوين من EMR (يوفر البنية الأساسية) في البداية. يتعرف العضو الأول على وظيفة GDI (تُستخدم المعلمات في السجل) التي تحدد نوع السجل وتُعرف باسم iType. يحدد العضو الآخر nSize حجم كل سجل. المعلمات المتبقية (إن وجدت) والبيانات الإضافية مرتبة مباشرة أسفل nSize. بعد العنوان مباشرة ، قد يظهر وصف نصي اختياري. يتم تسجيل اسم الصورة والمؤلف في هذا الوصف النصي. تحدد اللوحة التي يكون وجودها خيارًا الألوان المستخدمة في إنشاء ملف تعريف محسّن. السجلات الأخرى المستخدمة لتحديد وظيفة GDI الضرورية في إنشاء الصورة.
يجب أن يكون سجل EMF واحدًا على الأقل موجودًا في كل ملف تعريف. تعتمد معلومات العبور من سجل إلى آخر على سجلات EMF لذا يجب ترتيب هذه السجلات بشكل متقارب. في أي سجل معين في ملف التعريف باستثناء EOF_record ، يتم تحديد طول هذا السجل المعين للانتقال إلى السجل التالي.
إنشاء ملف تعريف محسّن
تُستخدم الوظيفة ** CreateEnhMetaFile ** لإنشاء ملف تعريف محسّن. تُستخدم وسيطات الوظائف هذه لأبعاد وتخزين الصورة على القرص / الذاكرة. علاوة على ذلك ، تتطلب هذه الوظيفة بُعد الجهاز الذي ظهرت فيه الصورة أولاً (الجهاز المشار إليه) وسياق الجهاز المرجعي (DC). لذلك يجب أن توفر الوسيطات للتعامل مع وحدة التحكم هذه عند استدعاء دالة ** CreateEnhMetaFile **. بناء جملة الوظيفة كما يلي:
HDC CreateEnhMetaFileExample(
HDC hdc,
LPCSTR lptoFilename,
const OVAL *lprc,
LPCSTR lpDesc
);
** HDC: ** يتعامل مع جهاز مرجعي.
** lptoFilename: ** مؤشر إلى اسم الملف.
** lprc: ** يحدد المؤشر إلى الهيكل البيضاوي أبعاد الصورة بالملم.
** lpDesc: ** مؤشر لسلسلة عنوان الصورة واسم التطبيق الذي أنشأ الصورة.
عمليات ملف التعريف المحسنة
فيما يلي الوظائف التي يمكن إنجازها باستخدام المقبض إلى ملف تعريف محسّن.
- عرض وتحرير للصورة المخزنة.
- إنتاج نسخ ملف تعريف محسنة.
- استرجع نسخة رأس EMF والوصف الاختياري والإصدار الثنائي لملف تعريف محسّن
- إعادة تلخيص الألوان في اللوحة.
كائنات الرسومات
في عمليات الرسم والطلاء ، يمكن إنشاء الكائنات الرسومية بواسطة سجلات إنشاء الكائنات ويمكن حفظها للاستخدام مرة أخرى. يمكن لسجل “EMR_SELECTOBJECT” استرداد هذه الكائنات الرسومية باستخدام سياق جهاز التشغيل. الأقلام واللوحات والفرش ومساحات الألوان والخطوط وكائنات المخزون هي بعض أنواع الكائنات التي يمكن إعادة استخدامها.
ترتيب البايت
يتم استخدام التنسيق الصغير لتخزين البيانات في سجلات ملف التعريف.
الإصدار
تمت مراجعة تنسيق ملف EMF مرتين. الإصدارات التي تم تغييرها هي أصلية ، وامتداد 1 ، وامتداد 2. تحتوي الإصدارات الممتدة على توفير لسجلات OpenGL وواصف اختياري لتنسيق البكسل الداخلي. يتم إضافة وسيلة قياس بالملليترات للأبعاد المعروضة.