একটি EMF ফাইল কি?
এনহ্যান্সড মেটাফাইল ফরম্যাট (EMF) গ্রাফিকাল ইমেজ ডিভাইস-স্বতন্ত্রভাবে সঞ্চয় করে। EMF-এর মেটাফাইলগুলি কালানুক্রমিক ক্রমে পরিবর্তনশীল-দৈর্ঘ্যের রেকর্ডগুলি নিয়ে গঠিত যা যেকোনো আউটপুট ডিভাইসে পার্স করার পরে সঞ্চিত চিত্রটিকে রেন্ডার করতে পারে। এই পরিবর্তনশীল-দৈর্ঘ্যের রেকর্ডগুলি আবদ্ধ বস্তুর সংজ্ঞা, অঙ্কনের জন্য কমান্ড এবং চিত্রটিকে সঠিকভাবে রেন্ডার করার জন্য গুরুত্বপূর্ণ গ্রাফিক্স বৈশিষ্ট্য হতে পারে। যখন একটি ডিভাইস তার নিজস্ব গ্রাফিক্স এনভায়রনমেন্ট ব্যবহার করে একটি EMF মেটাফাইল খোলে, মূল ছবির অনুপাত, মাত্রা, রঙ এবং অন্যান্য গ্রাফিক বৈশিষ্ট্যগুলি খোলার ডিভাইস প্ল্যাটফর্ম নির্বিশেষে একই থাকে।
সংক্ষিপ্ত ইতিহাস
1990 সালে, মাইক্রোসফ্ট মাইক্রোসফ্ট উইন্ডোজের জন্য একটি ইমেজ ফাইল ফরম্যাট উইন্ডোজ মেটাফাইল (WMF) ডিজাইন করেছিল। Windows Metafiles হল 16-বিট ফরম্যাট যাতে কিছু বিটম্যাপ উপাদান থাকতে পারে। WMF ভেক্টর গ্রাফিক্স নিয়ে গঠিত হতে পারে এবং এটি বিভিন্ন অ্যাপ্লিকেশনের মধ্যে বহনযোগ্য রাখার উদ্দেশ্যে। 1993 সালে, Win32/GDI এনহ্যান্সড মেটাফাইল (EMF) ঘোষণা করে, যা উন্নত নমনীয়তা এবং মাপযোগ্যতা সহ একটি নতুন সংস্করণ। ইএমএফ প্রিন্টার ড্রাইভার চালানোর জন্য গ্রাফিক্স ভাষা কমান্ড হিসাবেও ব্যবহৃত হয়। মাইক্রোসফ্ট এখন উইন্ডোজ-ফরম্যাট (WMF) এর চেয়ে বর্ধিত মেটাফাইল ফরম্যাট (EMF) সুপারিশ করে। যখন Windows XP চালু করা হয়েছিল, তখন এনহ্যান্সড মেটাফাইল ফরম্যাট প্লাস (EMF+) সংস্করণ প্রকাশিত হয়েছিল। এই নতুন সংস্করণটি জিডিআই+ এপিআই কলগুলিকে সিরিয়ালাইজ করে একইভাবে WMF/EMF কলগুলিকে GDI-তে রেকর্ড করে। EMF এর একটি gzip সংকুচিত সংস্করণ রয়েছে যা EMZ নামে পরিচিত।
EMF মেটাফাইল বিন্যাস
বর্ধিত মেটাফাইল-ফরম্যাটের প্রয়োজনীয় উপাদানগুলি নিম্নরূপ:
একটি EMR_HEADER (সংস্করণ, আকার, নির্মাণের সময় ছবির রেজোলিউশন)
GDI অবজেক্টের জন্য একটি টেবিল
একটি সংরক্ষিত প্যালেট (ঐচ্ছিক)
মেটাফাইল রেকর্ডগুলি অ্যারে কাঠামোতে সাজানো (সম্পত্তি সেটিংস, সংজ্ঞায়িত বস্তু, অঙ্কন কমান্ড)
EMR_EOF রেকর্ড (EMF মেটাফাইলে শেষ রেকর্ড)
EMF সংস্করণ
অরিজিনাল: আসল সংস্করণটি আসল চিত্রটি রাখতে এবং ডিভাইস-স্বাধীন বজায় রাখার জন্য প্রয়োজনীয় রেকর্ড নির্দিষ্ট করে। তাছাড়া অঙ্কনের জন্য গ্রাফিক্স অবজেক্ট এবং কমান্ড ধারণকারী রেকর্ড সমর্থন করে।
সংস্করণ 1: EMF এর দ্বিতীয় সংস্করণটি পিক্সেল বিন্যাসের রেকর্ড এবং OpenGL কমান্ড ব্যবহার করার বিধান যোগ করে নমনীয়তা এবং ডিভাইসের স্বাধীনতাকে উন্নত করেছে।
সংস্করণ 2: তৃতীয় সংস্করণটি ডিভাইসের পৃষ্ঠের দূরত্ব পরিমাপ করার জন্য মেট্রিক সিস্টেম যোগ করে নির্ভুলতা বাড়িয়েছে, রেকর্ডটিকে আরও মাপযোগ্য রেখে৷
উন্নত মেটাফাইল রেকর্ড
মেটাফাইল রেকর্ড অ্যারে আকারে সাজানো হয়. এই রেকর্ডগুলির ENHMETARECORD গঠন এবং দৈর্ঘ্য পরিবর্তনশীল। ENHMETARECORD বর্ধিত মেটাফাইল বিন্যাস ব্যবহার করে একটি ছবি তৈরি করতে GDI ফাংশন সংজ্ঞায়িত করে এমন ডেটা নির্দিষ্ট করে। ENHMETAHEADER গঠন সর্বদা এই বিন্যাসে প্রথম রেকর্ড। এই EMF হেডারে নিম্নলিখিত তথ্য রয়েছে।
Every record of enhanced metafile has two members of EMR (provides the base structure) in the beginning. The first member recognizes GDI function (parameters are used in record) which determines the type of record and is known as iType. The other member nSize define the size of each record. Remaining parameters (if any) and additional data arranged immediately below nSize. Immediately following the header an optional text description may present. The name of picture and author is recorded in that text description. The palette whose presence is an option specifies the colors used in enhanced metafile creation. The other records used to specify the GDI function which is essential in picture creation.
প্রতিটি মেটাফাইলে কমপক্ষে একটি EMF রেকর্ড থাকা উচিত। এক রেকর্ড থেকে অন্য রেকর্ডে যাওয়ার তথ্য EMF রেকর্ডের উপর নির্ভরশীল তাই এই রেকর্ডগুলিকে সংলগ্নভাবে সাজাতে হবে। EOF_record ছাড়া মেটাফাইলের যেকোনো প্রদত্ত রেকর্ডে, সেই নির্দিষ্ট রেকর্ডের দৈর্ঘ্য পরবর্তী রেকর্ডে যাওয়ার জন্য সংজ্ঞায়িত করে।
উন্নত মেটাফাইল তৈরি
CreateEnhMetaFile ফাংশনটি একটি উন্নত মেটাফাইল তৈরি করতে ব্যবহৃত হয়। এই ফাংশন আর্গুমেন্টগুলি ডিস্ক/মেমরিতে ছবির মাত্রা এবং স্টোরেজের জন্য ব্যবহৃত হয়। তদ্ব্যতীত, এই ফাংশনটি ডিভাইসের মাত্রা প্রয়োজন যেখানে ছবি প্রথম প্রদর্শিত হয়েছিল (রেফারেন্স ডিভাইস) এবং রেফারেন্স ডিভাইসের প্রসঙ্গ (ডিসি)। তাই CreateEnhMetaFile ফাংশন কল করার সময় এই ডিসি পরিচালনার আর্গুমেন্ট অবশ্যই প্রদান করতে হবে। ফাংশনের সিনট্যাক্স নিম্নরূপ:
HDC CreateEnhMetaFileExample(
HDC hdc,
LPCSTR lptoFilename,
const OVAL *lprc,
LPCSTR lpDesc
);
HDC: একটি রেফারেন্স ডিভাইসে হ্যান্ডেল।
lptoFilename: ফাইলের নামের একটি পয়েন্টার।
lprc: ডিম্বাকৃতি গঠনের নির্দেশক মিমিতে ছবির মাত্রা নির্দিষ্ট করে।
lpDesc: a pointer to a string for the title of picture and application name that created the picture.
উন্নত মেটাফাইল অপারেশন
একটি উন্নত মেটাফাইল হ্যান্ডেল ব্যবহার করে সম্পন্ন করা যেতে পারে যে কাজ নিম্নলিখিত.
সঞ্চিত ছবির জন্য প্রদর্শন এবং সম্পাদনা করুন।
উন্নত মেটাফাইল কপি তৈরি করুন।
Retrieve the copy of an EMF header, optional description and binary version of an enhanced metafile
প্যালেটের রঙগুলিকে পুনরায় ক্যাপিটুলেট করুন।
গ্রাফিক্স অবজেক্ট
অঙ্কন এবং পেইন্টিং ক্রিয়াকলাপে, গ্রাফিক্স অবজেক্টগুলি বস্তু তৈরির রেকর্ড দ্বারা তৈরি করা যেতে পারে এবং পরবর্তী ব্যবহারের জন্য সংরক্ষণ করতে পারে। একটি EMR_SELECTOBJECT
রেকর্ড প্লেব্যাক ডিভাইস প্রসঙ্গ ব্যবহার করে এই গ্রাফিক্স বস্তুগুলি পুনরুদ্ধার করতে পারে৷ কলম, প্যালেট, ব্রাশ, রঙের স্থান, ফন্ট এবং স্টক অবজেক্ট কিছু পুনঃব্যবহারযোগ্য বস্তুর ধরন।
বাইট অর্ডারিং
লিটল-এন্ডিয়ান ফর্ম্যাট মেটাফাইল রেকর্ডে ডেটা সংরক্ষণ করতে ব্যবহৃত হয়।
সংস্করণ
The EMF file format has been revised twice. The changed versions are original, extension 1, and extension 2. বর্ধিত সংস্করণে OpenGL রেকর্ডের বিধান এবং অভ্যন্তরীণ পিক্সেল বিন্যাসের জন্য একটি ঐচ্ছিক বর্ণনাকারী রয়েছে। প্রদর্শিত মাত্রার জন্য মিলিলিটারে একটি পরিমাপের সুবিধা যোগ করা হয়েছে।