Τι είναι ένα αρχείο EMF;
Η βελτιωμένη μορφή μετα-αρχείου (EMF) αποθηκεύει γραφικές εικόνες ανεξάρτητα από τη συσκευή. Τα μετααρχεία του EMF αποτελούνται από εγγραφές μεταβλητού μήκους με χρονολογική σειρά που μπορούν να αποδώσουν την αποθηκευμένη εικόνα μετά την ανάλυση σε οποιαδήποτε συσκευή εξόδου. Αυτές οι εγγραφές μεταβλητού μήκους μπορεί να είναι ορισμοί εσώκλειστων αντικειμένων, εντολές για σχέδιο και ιδιότητες γραφικών που είναι κρίσιμες για την ακριβή απόδοση της εικόνας. Όταν μια συσκευή ανοίγει ένα μετααρχείο EMF χρησιμοποιώντας το δικό της περιβάλλον γραφικών, οι αναλογίες, οι διαστάσεις, τα χρώματα και άλλες γραφικές ιδιότητες της αρχικής εικόνας παραμένουν ίδιες ανεξάρτητα από την πλατφόρμα της συσκευής ανοίγματος.
Σύντομη Ιστορία
Το 1990, η Microsoft σχεδίασε μια μορφή αρχείου εικόνας Windows Metafile (WMF) για Microsoft Windows. Τα Windows Metafiles είναι 16-bit μορφή που μπορεί να περιέχουν ορισμένα στοιχεία bitmap. Το WMF μπορεί να αποτελείται από διανυσματικά γραφικά και προορίζεται να διατηρείται φορητό μεταξύ διαφορετικών εφαρμογών. Το 1993, το Win32/GDI ανακοίνωσε το Enhanced Metafile (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
- Original: Η αρχική έκδοση καθορίζει το αρχείο που είναι απαραίτητο για τη διατήρηση της αρχικής εικόνας και τη διατήρηση της ανεξάρτητης συσκευής. Επιπλέον υποστηρίζει την εγγραφή που περιέχει αντικείμενα γραφικών και εντολές για σχέδιο.
- Έκδοση 1: Η δεύτερη έκδοση του EMF βελτίωσε την ευελιξία και την ανεξαρτησία της συσκευής προσθέτοντας την εγγραφή για μορφή pixel και παροχή για χρήση της εντολής OpenGL.
- Έκδοση 2: Η τρίτη έκδοση βελτίωσε την ακρίβεια προσθέτοντας το σύστημα Metric για τη μέτρηση των αποστάσεων της επιφάνειας της συσκευής, αφήνοντας το αρχείο πιο κλιμακωτό.
Βελτιωμένες εγγραφές μετα-αρχείων
Οι εγγραφές μετα-αρχείων διατάσσονται με τη μορφή πίνακα. Αυτές οι εγγραφές έχουν δομή ENHMETARECORD και μεταβλητό μήκος. Το ENHMETARECORD καθορίζει δεδομένα που ορίζουν συναρτήσεις GDI για τη δημιουργία μιας εικόνας χρησιμοποιώντας βελτιωμένη μορφή μετα-αρχείου. Η δομή ENHMETAHEADER είναι πάντα η πρώτη εγγραφή σε αυτή τη μορφή. Αυτή η κεφαλίδα EMF περιέχει τις ακόλουθες πληροφορίες.
Κάθε εγγραφή βελτιωμένου μετα-αρχείου έχει δύο μέλη EMR (παρέχει τη βασική δομή) στην αρχή. Το πρώτο μέλος αναγνωρίζει τη συνάρτηση GDI (οι παράμετροι χρησιμοποιούνται στην εγγραφή) η οποία καθορίζει τον τύπο της εγγραφής και είναι γνωστή ως iType. Το άλλο μέλος nSize ορίζει το μέγεθος κάθε εγγραφής. Οι υπόλοιπες παράμετροι (αν υπάρχουν) και τα πρόσθετα δεδομένα ταξινομημένα αμέσως κάτω από το nSize. Αμέσως μετά την κεφαλίδα μπορεί να εμφανιστεί μια προαιρετική περιγραφή κειμένου. Το όνομα της εικόνας και του συγγραφέα καταγράφονται σε αυτήν την περιγραφή κειμένου. Η παλέτα της οποίας η παρουσία είναι επιλογή καθορίζει τα χρώματα που χρησιμοποιούνται στη βελτιωμένη δημιουργία μετα-αρχείων. Οι άλλες εγγραφές χρησιμοποιούνται για τον καθορισμό της συνάρτησης GDI που είναι απαραίτητη στη δημιουργία εικόνας.
Τουλάχιστον μία εγγραφή EMF θα πρέπει να υπάρχει σε κάθε μετα-αρχείο. Οι πληροφορίες διέλευσης από τη μια εγγραφή στην άλλη εξαρτώνται από τις εγγραφές EMF, επομένως αυτές οι εγγραφές πρέπει να ταξινομηθούν δίπλα. Σε οποιαδήποτε δεδομένη εγγραφή στο μετα-αρχείο εκτός από το EOF_record, το μήκος αυτής της συγκεκριμένης εγγραφής ορίζεται για να μετακινηθεί στην επόμενη εγγραφή.
Βελτιωμένη δημιουργία μετα-αρχείου
Η λειτουργία CreateEnhMetaFile χρησιμοποιείται για τη δημιουργία ενός βελτιωμένου μετα-αρχείου. Αυτή η συνάρτηση ορίσματα χρησιμοποιούνται για τις διαστάσεις και την αποθήκευση της εικόνας στο δίσκο/μνήμη. Επιπλέον, αυτή η λειτουργία απαιτεί τη διάσταση της συσκευής στην οποία εμφανίστηκε πρώτη η εικόνα (συσκευή αναφοράς) και το περιβάλλον της συσκευής αναφοράς (DC). Επομένως, τα ορίσματα για τον χειρισμό αυτού του DC πρέπει να παρέχονται κατά την κλήση της συνάρτησης CreateEnhMetaFile. Η σύνταξη της συνάρτησης είναι η εξής:
HDC CreateEnhMetaFileExample(
HDC hdc,
LPCSTR lptoFilename,
const OVAL *lprc,
LPCSTR lpDesc
);
HDC: λαβή σε συσκευή αναφοράς.
lptoFilename: Ένας δείκτης στο όνομα του αρχείου.
lprc: Ο δείκτης προς την οβάλ δομή καθορίζει τις διαστάσεις της εικόνας σε mm.
lpDesc: ένας δείκτης σε μια συμβολοσειρά για τον τίτλο της εικόνας και το όνομα της εφαρμογής που δημιούργησε την εικόνα.
Βελτιωμένες λειτουργίες μετα-αρχείου
Ακολουθούν εργασίες που μπορούν να πραγματοποιηθούν χρησιμοποιώντας τη λαβή σε ένα βελτιωμένο μετααρχείο.
- Εμφάνιση και επεξεργασία για την αποθηκευμένη εικόνα.
- Δημιουργήστε βελτιωμένα αντίγραφα μετα-αρχείων.
- Ανακτήστε το αντίγραφο μιας κεφαλίδας EMF, προαιρετική περιγραφή και δυαδική έκδοση ενός βελτιωμένου μετααρχείου
- Ανακεφαλαιώστε τα χρώματα στην παλέτα.
Αντικείμενα γραφικών
Στις εργασίες σχεδίασης και ζωγραφικής, τα αντικείμενα γραφικών μπορούν να δημιουργηθούν από εγγραφές δημιουργίας αντικειμένων και μπορούν να αποθηκευτούν για περαιτέρω χρήση. Μια εγγραφή EMR_SELECTOBJECT
μπορεί να ανακτήσει αυτά τα αντικείμενα γραφικών χρησιμοποιώντας το περιβάλλον της συσκευής αναπαραγωγής. Οι στυλό, οι παλέτες, τα πινέλα, οι χρωματικοί χώροι, οι γραμματοσειρές και τα αντικείμενα στοκ είναι ορισμένοι επαναχρησιμοποιήσιμοι τύποι αντικειμένων.
Ταξινόμηση byte
Η μορφή Little-Endian χρησιμοποιείται για την αποθήκευση δεδομένων σε εγγραφές μετα-αρχείων.
Έκδοση
Η μορφή αρχείου EMF έχει αναθεωρηθεί δύο φορές. Οι τροποποιημένες εκδόσεις είναι οι πρωτότυπες, η επέκταση 1 και η επέκταση 2. Οι εκτεταμένες εκδόσεις έχουν πρόβλεψη για εγγραφές OpenGL και έναν προαιρετικό περιγραφέα για εσωτερική μορφή pixel. Προστίθεται μια μονάδα μέτρησης σε χιλιοστόλιτρα για τις εμφανιζόμενες διαστάσεις.