معالجة Windows ملفات التعريف

Windows تنسيق ملف التعريف هو تنسيق ملف صورة يمكن أن يحتوي على كل من الرسومات المتجهة والنقطية. يستخدم هذا التنسيق لتخزين بيانات الرسومات في الذاكرة أو الملفات الموجودة على القرص. يخزن ملف التعريف قائمة باستدعاءات الوظائف في Windows واجهة جهاز الرسومات (GDI) التي يجب تنفيذها لعرض الصورة على الشاشة. يفسر النظام هذه الأوامر وينفذها في سياق العرض.

في السابق، كان ملف التعريف Windows هو تنسيق الصورة المتجه الوحيد الذي يدعمه Microsoft Word. Microsoft Word الآن يدعم أيضا تنسيق SVG، ولكن تنسيق ملف التعريف لا يزال يستخدم بشكل شائع في مستندات ورد. أيضا، يمكن أن يكون ملف التعريف تنسيق تبادل لبعض التطبيقات الأخرى، مثل Microsoft فيسيو. بشكل أساسي، الغرض الرئيسي من ملف التعريف هو ضمان تبادل المعلومات الرسومية بين تطبيقات Windows.

هناك 3 إصدارات Windows ميتافيل:

  • WMF - استدعاء المتاجر إلى 16 بت GDI.
  • EMF - مخازن دعوة للفوز 32 / GDI.
  • EMF+ مخازن ميتافيل دعوة إلى GDI+. EMF + ميتافيل قد تكون أيضا مزدوجة، واصفا نفس الرسومات مع كل من EMF و EMF + أجزاء.

المشكلة الحالية مع ملف التعريف Windows هي أنه غير مدعوم من قبل معظم تنسيقات غير الكلمات، والتي يتم حفظ المستندات عليها عادة. لذلك، يلزم تحويل تنسيق ملف التعريف إلى تنسيقات نقطية أو متجهة أخرى. من السهل تحويل Windows ملف التعريف إلى صورة نقطية على .NET بمجرد تمريره إلى GDI+، ولكن هذا غير ممكن على الأنظمة الأساسية الأخرى لأنه حتى GDI+ لا يوفر الوظيفة لاستخراج الرسومات المتجهة من ملف التعريف. لحل هذه المشكلات، ينفذ Aspose.Words مشغل ملف التعريف الخاص به Windows، والذي يمكنه تشغيل تنسيق ملف التعريف على حد سواء المتجه والرسومات النقطية على جميع الأنظمة الأساسية.

التحكم في مشغل ملف التعريف Aspose.Words

تتيح لك فئة MetafileRenderingOptions التحكم في مشغل ملف التعريف. على سبيل المثال، يمكنك تحديد كيفية عرض صور ملف التعريف باستخدام خاصية RenderingMode، والتي لها معنى خاص عند التحويل إلى صور نقطية (انظر أيضا خاصية MetafileRenderingOptions).

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

دعم العمليات النقطية

العمليات النقطية هي ميزة ملف التعريف المعقدة، التي لديها حاليا دعم محدود. تتوفر العمليات النقطية بتنسيقات ملف التعريف WMF و EMF. لا يستخدم تنسيق EMF+ ملف التعريف العمليات النقطية مباشرة ولكن يمكن أن يحتوي على EMF أجزاء، مضمنة WMF أو EMF ملفات التعريف.

هناك عمليات نقطية ثنائية وثلاثية:

  • يتم تطبيق العمليات النقطية الثنائية على أوامر الرسم بالقلم، مثل رسم الخطوط والمنحنيات. عند رسم خط، يتم دمج لون القلم مع لون الصورة النقطية الوجهة (لون البكسل المقابل على سطح الجهاز) باستخدام عمليات منطقية محددة في اتجاه البت مع قيم ألوان سداسية عشرية. يوضح مثال الصورة أدناه تأثير جميع العمليات النقطية الثنائية الـ 16 المطبقة على 20 شريطا مختلفا من الألوان. يتم رسم أشرطة الألوان الرأسية أولا، ويتم رسم الأشرطة الأفقية بعد تطبيق كل عملية نقطية ثنائية. للحالات البسيطة ،R2_BLACK يرسم الأسود، R2_NOT يعكس اللون، R2_NOP لا يغير الخلفية، و R2_WHITE يرسم الأبيض.
handling-windows-metafiles-aspose-words-cpp-1
  • يتم تطبيق العمليات النقطية الثلاثية عند رسم الصور النقطية. فهي تجمع بين ألوان بكسل الصورة النقطية المقابلة والفرشاة والصورة النقطية الوجهة باستخدام عمليات منطقية ذات اتجاه بت مع قيم ألوان سداسية محددة. أحد الأغراض الأكثر شيوعا لاستخدام العمليات النقطية الثلاثية هو محاكاة الشفافية. توضح الصورة الواردة في المثال أدناه كيف يمكن محاكاة شفافية الرمز. هناك نوعان من الصور النقطية: الصورة النقطية لقناع ب/ث والصورة النقطية الملونة. أولا، يتم رسم الصورة النقطية للقناع باستخدام عملية SRCAND النقطية. يغير منطقة الرمز غير الشفاف إلى الأسود والأبيض، تاركا المنطقة الشفافة دون تغيير. ثم يتم رسم الصورة النقطية الثانية باستخدام عملية SRCINVERT النقطية. فإنه يعرض بكسل اللون على المنطقة السوداء، وترك المنطقة شفافة دون تغيير.
handling-windows-metafiles-aspose-words-cpp-2

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

يوضح المثال الموضح أدناه كيف Aspose.Words يعرض ملف تعريف إلى صورة نقطية عندما لا يكون من الممكن عرض بعض سجلات ملف التعريف بشكل صحيح على رسومات متجهة:

إعدادات احتياطي ملف التعريف

Aspose.Words لا يدعم عددا من الميزات ميتافيل التي هي الأكثر تعقيدا أو نادرة. يمكن للمستخدمين تنفيذ واجهة IWarningCallBack وتلقي رسائل التحذير. إذا واجه Aspose.Words ميزات غير مدعومة في ملف التعريف، فإنه يصدر رسالة تحذير بـ WarningSource.Metafile. في هذه الحالة Aspose.Words قد يؤدي احتياطيا إلى نوع مختلف من مشغل ملف التعريف. يتم أيضا إصدار رسالة التحذير المتعلقة بالاحتياطي.

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

Aspose.Words يلعب بنجاح ملف التعريف إلى النقطية باستخدام GDI + على .NET، مما يجعل خيار رد الاتصال هذا آمنا.

ثانيا، هناك خيار لـ EMF + ملف تعريف مزدوج للتراجع من تشغيل EMF + جزء إلى EMF جزء. يتم التحكم فيه بواسطة EmfPlusDualRenderingMode. إذا كانت هناك بعض المشكلات التي تحدث عند تشغيل الجزء EMF، فقد يتم إجراء الرجوع إلى البيانات النقطية أيضا.

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