กลับไปหน้าบทความ

อ่าน 18 นาที

ไฟล์เมตาของ Windows

Windows Metafile ( WMF ) เป็นรูปแบบไฟล์ภาพที่ออกแบบมาสำหรับMicrosoft Windowsในช่วงทศวรรษ 1990 รูปแบบ Windows Metafile ดั้งเดิมนั้นไม่เป็นอิสระจากอุปกรณ์...

ไฟล์เมตาของ Windows

Windows Metafile ( WMF ) เป็นรูปแบบไฟล์ภาพที่ออกแบบมาสำหรับMicrosoft Windowsในช่วงทศวรรษ 1990 รูปแบบ Windows Metafile ดั้งเดิมนั้นไม่เป็นอิสระจากอุปกรณ์ (แม้ว่าจะสามารถทำให้เป็นอิสระมากขึ้นได้ด้วยส่วนหัวการจัดวาง) และอาจประกอบด้วยทั้งกราฟิกแบบเวกเตอร์และ ส่วนประกอบ แบบบิตแมปมันทำงานในลักษณะคล้ายกับ ไฟล์ SVG ไฟล์ WMF ถูกแทนที่ด้วย Enhanced Metafiles (ไฟล์ EMF) ในภายหลัง ซึ่งรองรับการทำงานที่ไม่ขึ้นกับอุปกรณ์ และไฟล์ EMF ก็ได้รับการปรับปรุงเพิ่มเติมผ่าน ไฟล์ EMF+ในภายหลัง

โดยพื้นฐานแล้ว เมตาไฟล์จะจัดเก็บรายการบันทึกที่ประกอบด้วยคำสั่งการวาด คำจำกัดความคุณสมบัติ และวัตถุกราฟิกเพื่อแสดงภาพบนหน้าจอ[ 1 ]คำสั่งการวาดที่ใช้มีความเกี่ยวข้องอย่างใกล้ชิดกับคำสั่งของAPI อินเทอร์เฟซอุปกรณ์กราฟิก (GDI) ที่ใช้สำหรับการวาดใน Microsoft Windows

มีเมตาไฟล์หลักๆ สามประเภท ได้แก่ WMF ซึ่งเป็น รูปแบบ 16 บิตที่เปิดตัวในWindows 3.0เป็นรูปแบบเวกเตอร์ ดั้งเดิม สำหรับ แอปพลิเคชัน Microsoft Officeเช่นWord , PowerPointและPublisherณ เดือนเมษายน 2024 มีข้อกำหนด Windows Metafile Format ฉบับแก้ไข 18 ให้ใช้งาน[ 2 ]ไฟล์ EMF ซึ่งเข้ามาแทนที่ไฟล์ WMF ทำงานบนหลักการเดียวกัน เพียงแต่เป็นรูปแบบไฟล์ 32 บิตที่อนุญาตให้ฝังข้อมูลส่วนตัวไว้ในระเบียน "ความคิดเห็น" ได้[ 3 ] EMF+ เป็นส่วนขยายของไฟล์ EMF และฝังอยู่ในระเบียนความคิดเห็นเหล่านี้ ทำให้สามารถใส่รูปภาพและข้อความโดยใช้คำสั่ง วัตถุ และคุณสมบัติที่คล้ายกับ Windows GDI+ได้[ 4 ]

ประวัติศาสตร์

รูปแบบไฟล์ WMF 16 บิตดั้งเดิมได้รับการระบุอย่างครบถ้วนในเล่มที่ 4 ของ เอกสารประกอบ Windows 3.1 SDK ปี 1992 [ 5 ] (อย่างน้อยที่สุดหากรวมกับคำอธิบายของฟังก์ชันและโครงสร้างแต่ละรายการในเล่มอื่นๆ) แต่ข้อกำหนดนั้นคลุมเครือเกี่ยวกับรายละเอียดบางประการ คู่มือเหล่านี้ได้รับการตีพิมพ์เป็นหนังสือที่วางจำหน่ายในร้านหนังสือโดยไม่มีEULA ที่ ต้องคลิกยอมรับ หรือข้อจำกัดด้านลิขสิทธิ์ที่ผิดปกติอื่นๆ (มีเพียงคำเตือนทั่วไปว่าหากซื้อเป็นส่วนหนึ่งของชุดซอฟต์แวร์ ซอฟต์แวร์นั้นจะอยู่ภายใต้ข้อตกลงดังกล่าว)

เมื่อเวลาผ่านไป ข้อกำหนดทางประวัติศาสตร์ดังกล่าวถูกลืมเลือนไปเป็นส่วนใหญ่ และการใช้งานทางเลือกบางอย่างก็หันไปใช้วิธีการวิศวกรรมย้อนกลับเพื่อหาโครงสร้างไฟล์จากไฟล์ WMF ที่มีอยู่ ซึ่งเป็นเรื่องยากและมีโอกาสเกิดข้อผิดพลาด สูง [ 6 ]ในเดือนกันยายน พ.ศ. 2549 ไมโครซอฟต์ได้เผยแพร่ข้อกำหนดรูปแบบไฟล์ WMF อีกครั้งในรูปแบบที่สมบูรณ์ยิ่งขึ้น[ 7 ]ในบริบทของคำมั่นสัญญาข้อกำหนดแบบเปิดของไมโครซอฟต์โดยสัญญาว่าจะไม่ใช้สิทธิบัตรกับผู้พัฒนาโครงสร้างไฟล์[ 8 ]

ต่อมา Microsoft ได้ยกเลิกการใช้งานไฟล์ WMF และหันมาใช้ ไฟล์ EMF แบบ 32 บิต แทน เนื่องจากไฟล์ WMF มีปัญหาเรื่องความเป็นอิสระของอุปกรณ์อย่างแท้จริง แม้ว่าจะใช้ส่วนหัวไฟล์แบบ "placeable" ซึ่งให้ความเป็นอิสระของอุปกรณ์ขั้นพื้นฐานก็ตาม Microsoft พบว่านักพัฒนาที่ใช้รูปแบบนี้ "[ฝัง] ความคิดเห็นเกี่ยวกับแอปพลิเคชัน ตำแหน่ง หรือการปรับขนาดในเมตาไฟล์... บางคนเพิ่มส่วนหัวลงในเมตาไฟล์ที่ให้ข้อมูลเฉพาะแอปพลิเคชันต่างๆ" ทำให้เกิดปัญหาความเข้ากันได้ที่สำคัญ[ 9 ]ดังนั้น ในปี 1992 พร้อมกับWindows NT 3.1 Microsoft จึงได้แนะนำรูปแบบ Enhanced Metafile (EMF) [ 10 ]ซึ่งเป็นรูปแบบที่ใช้Win32 API และมีความเป็นอิสระของอุปกรณ์ในตัว[ 11 ] [ 9 ]ซึ่งเรียกอีกอย่างว่า NT metafiles [ 12 ]ด้วยการเปิดตัวWindows XPและ GDI+ ชุดบันทึกต้องเพิ่มขึ้นอย่างมาก ดังนั้น Microsoft จึงได้เปิดตัว EMF+ เป็นส่วนขยายของรูปแบบไฟล์ EMF ที่มีอยู่[ 10 ] [ 13 ]

โครงสร้างเมตาไฟล์

การเปรียบเทียบไฟล์เมตาของ Windows – ไฟล์ WMF สามารถรวมเรคอร์ด EMF+ ได้

ไฟล์ WMF, EMF และ EMF+ ประกอบด้วยชุดของระเบียนที่ถูกนำมาเล่นเพื่อสร้างเอาต์พุตแบบกราฟิก ระเบียนบางส่วนกำหนดวัตถุที่สามารถระบุวัตถุกราฟิกที่ใช้ในการกำหนดวิธีการวาดภาพ (เช่น ปากการะบุสีและความกว้างของเส้น) วัตถุเหล่านี้แต่ละชิ้นจะถูกจัดเก็บไว้ในเมตาไฟล์และวางไว้ในตารางวัตถุ ซึ่งติดตามการใช้งานวัตถุกราฟิกในระหว่างการประมวลผลเมตาไฟล์ ตารางวัตถุเป็นอาร์เรย์แบบเชื่อมโยงของดัชนีไปยังโครงสร้างวัตถุกราฟิกที่กำหนดไว้ภายในเมตาไฟล์

ไฟล์ WMF และ EMF จัดการการประมวลผลวัตถุแตกต่างจากเรคอร์ด EMF+ ในไฟล์ EMF เมื่อมีการประมวลผลไฟล์ WMF และ EMF เรคอร์ดจะถูกอ่านเข้าไปในตารางวัตถุเมื่อมีการกำหนดวัตถุ หากวัตถุถูกลบ วัตถุนั้นจะถูกปล่อยออกจากตารางและสามารถนำตัวระบุกลับมาใช้ใหม่ได้ ที่สำคัญคือ วัตถุจะไม่ถูกใช้งานจนกว่าจะถูกเลือกโดยเฉพาะในระหว่างการเล่นเรคอร์ด[ 14 ] [ 15 ]ซึ่งแตกต่างจากไฟล์ EMF+ ที่ใช้อาร์เรย์แบบเชื่อมโยงผ่านแฮชแมปซึ่งบันทึกวัตถุพร้อมกับตัวระบุวัตถุอย่างไรก็ตาม ต่างจากไฟล์ WMF และ EMF ที่สามารถลบวัตถุได้ เมื่อมีการสร้างวัตถุใหม่ที่มีดัชนีเดียวกันกับวัตถุที่มีอยู่ รายการในตารางจะถูกแทนที่ด้วยวัตถุใหม่ ไฟล์ EMF ไม่จำเป็นต้องเลือกวัตถุโดยเฉพาะก่อนที่จะใช้งาน[ 16 ]

ดับเบิลยูเอ็มเอฟ

ไฟล์เมตาของ Windows
นามสกุลไฟล์
.wmf
สื่อประเภทอินเทอร์เน็ต
ภาพ/wmf [ 10 ]
ตัวระบุประเภทมาตรฐาน (UTI)com.microsoft.wmf [ 10 ]
ประเภทของรูปแบบกราฟิกเวกเตอร์
ขยายไปยังเอ็มเอฟ
โครงสร้างของเมตาไฟล์ Windows ดั้งเดิมและที่สามารถวางได้[ 17 ]

ไฟล์ WMF ไม่ได้ถูกออกแบบมาให้ใช้งานได้กับอุปกรณ์ทุกชนิดตั้งแต่แรก ซึ่งหมายความว่าไฟล์จะไม่สามารถเล่นบนอุปกรณ์เอาต์พุตที่แตกต่างจากอุปกรณ์ดั้งเดิมที่บันทึกไฟล์นั้นไว้ได้ บริษัทAldus Corporation ได้คิดค้นวิธีแก้ปัญหาบางส่วน โดยเพิ่มส่วนหัวที่ "วางได้" เพิ่มเติม เรียกว่า "ส่วนหัว APM" [ 18 ]ซึ่งเพิ่มสี่เหลี่ยมขอบเขต เวอร์ชันเมตาไฟล์ ขนาดเมตาไฟล์ จำนวนวัตถุในเมตาไฟล์ และขนาดของเรคอร์ดเดี่ยวที่ใหญ่ที่สุดในเมตาไฟล์[ 19 ] [ 20 ] ต่อมา Microsoftได้นำส่วนหัวนี้มารวมเข้ากับรูปแบบ WMF โดยเริ่มตั้งแต่Windows 2000 [ 21 ]

ไฟล์ WMF มีโครงสร้างเป็นชุดของระเบียน โดยเริ่มต้นด้วยระเบียนควบคุมจำนวนหนึ่ง ได้แก่ ระเบียนส่วนหัว[ 19 ] [ 22 ]ระเบียนที่สามารถวางได้ตามที่กล่าวไว้ข้างต้น[ 23 ]และสิ้นสุดด้วยระเบียนสิ้นสุดไฟล์[ 19 ] [ 24 ]

เรคอร์ดที่ประกอบขึ้นเป็นภาพนั้นถูกห่อหุ้มด้วยเรคอร์ดควบคุม เรคอร์ดเหล่านี้ทำงานภายในสิ่งที่เรียกว่าบริบทอุปกรณ์เล่นซึ่งเป็นชุดของคุณสมบัติและวัตถุที่ประกอบขึ้นเป็นสภาพแวดล้อมกราฟิกของอุปกรณ์ในขณะที่เมตาไฟล์กำลัง "เล่น" ลงบนอุปกรณ์เอาต์พุตนี้[ 25 ]

โดยทั่วไปแล้ว ข้อมูลที่ไม่ใช่ข้อมูลควบคุมสามารถจัดกลุ่มได้เป็น ข้อมูลบิตแมป ข้อมูลการวาด ข้อมูลวัตถุ ข้อมูลสถานะ และข้อมูลการหลีกเลี่ยง

บันทึกบิตแมป

ระเบียนบิตแมปจัดการและส่งออกภาพบิตแม

ชื่อ คำอธิบาย
เมตา_บิตบล์ท ระบุวิธีการถ่ายโอนบล็อกบิตบันทึกเหล่านี้สามารถระบุบิตแมปที่จะใช้เป็นแหล่งที่มาหรือภูมิภาคได้[ 26 ]
เมตา_ดิบบิตบล์ท ระบุวิธีการถ่ายโอนบล็อกบิตของ ภาพ บิตแมปที่ไม่ขึ้นกับอุปกรณ์บันทึกเหล่านี้สามารถระบุบิตแมปที่จะใช้เป็นแหล่งที่มาหรือภูมิภาคได้[ 27 ]
เมตา_ดิบสเทรตช์บิตบีทีแอลที ระบุวิธีการถ่ายโอนบล็อกบิตของภาพบิตแมปที่ไม่ขึ้นกับอุปกรณ์ แต่ยอมให้ขยายหรือย่อภาพได้ บันทึกเหล่านี้สามารถระบุบิตแมปที่จะใช้เป็นแหล่งที่มาหรือภูมิภาคได้[ 28 ]
META_SETDIBTODEV ระบุสีเพื่อตั้งค่าบล็อกพิกเซลในภาพบิตแมปที่ไม่ขึ้นกับอุปกรณ์ บันทึกเหล่านี้สามารถระบุบิตแมปที่จะใช้เป็นแหล่งที่มาหรือภูมิภาคได้[ 29 ]
เมตา_สเตรทช์บีแอลที ระบุวิธีการถ่ายโอนบล็อกบิต แต่ยอมให้ขยายหรือหดตัวของภาพได้[ 30 ]
เมตา_สเทรตช์ดีบี ระบุวิธีการถ่ายโอนบล็อกบิตของภาพบิตแมปที่ไม่ขึ้นกับอุปกรณ์ แต่ยอมให้ขยายหรือย่อภาพได้ บันทึกเหล่านี้สามารถระบุบิตแมปที่จะใช้เป็นแหล่งที่มาหรือภูมิภาคได้[ 31 ]

บันทึกการวาดภาพ

บันทึกการวาดภาพจะสร้างผลลัพธ์เป็นภาพกราฟิก

ชื่อ คำอธิบาย
เมตาอาร์ค วาดส่วนโค้งวงรี[ 32 ]
เมตาคอร์ด วาดคอร์ด[ 33 ]
เมตา_เอลลิปส์ วาดส่วนโค้งวงรี[ 34 ]
เมตา_เอ็กซ์ฟลูดฟิลล์ เติมพื้นที่ด้วยแปรง[ 35 ]
เมตา_เอ็กซ์เทกซ์เอาท์ วาดข้อความด้วยแบบอักษร สีพื้นหลัง และสีข้อความตามบริบทของอุปกรณ์เล่น[ 36 ]
เมตา_ฟิลเรจิออน เติมพื้นที่ด้วยแปรงที่ระบุ[ 37 ]
เมตา_ฟลัดฟิลล์ เติมพื้นที่ด้วยแปรง[ 38 ]
เมตา_เฟรมภูมิภาค วาดเส้นขอบรอบบริเวณหน้ากระดาษด้วยแปรง[ 39 ]
เมตา_อินเวอร์เทรเจียน ระบายสีบริเวณกราฟิกด้วยสีกลับด้าน[ 40 ]
เมตา_ไลน์โต ลากเส้นครึ่งเปิด จากตำแหน่งการวาดที่กำหนดไว้ในบริบทของอุปกรณ์เล่นไปยังจุดที่ระบุ[ 41 ]
เมตา_เพนเทรเจียน ระบายสีบริเวณด้วยแปรงปัจจุบันที่ระบุในบริบทของอุปกรณ์เล่น[ 42 ]
เมตา_แพทบล์ท ระบายสีบริเวณด้วยแปรงปัจจุบันที่ระบุในบริบทของอุปกรณ์เล่น จากนั้นรวมสีของแปรงและสีของพื้นผิวโดยใช้การดำเนินการแรสเตอร์[ 43 ]
เมตาพาย วาดลิ่มรูปทรงพายที่ล้อมรอบด้วยจุดตัดของวงรีและรัศมีสองเส้น — เส้นจะถูกกำหนดผ่านปากกาที่กำหนดผ่านบริบทของอุปกรณ์เล่น และพื้นที่ที่ล้อมรอบด้วยรูปทรงพายจะถูกเติมด้วยแปรงปัจจุบันของบริบทของอุปกรณ์เล่น[ 44 ]
เมตาโพลีไลน์ วาดเส้นตรงหลายเส้นโดยเชื่อมต่อจุดในอาร์เรย์ที่กำหนด[ 45 ]
เมตาโพลีกอน ระบายสีรูปหลายเหลี่ยม ที่ประกอบด้วย จุดยอดสองจุดขึ้นไปที่เชื่อมต่อกันด้วยเส้นตรง รูปหลายเหลี่ยมจะถูกวาดโครงร่างโดยใช้ปากกาและเติมสีโดยใช้แปรงและโหมดการเติมรูปหลายเหลี่ยมที่กำหนดไว้ในบริบทของอุปกรณ์เล่น[ 46 ]
เมตา_โพลีโพลีกอน ระบายสีชุดของรูปหลายเหลี่ยมปิด ซึ่งอาจทับซ้อนกันได้ แต่ละรูปหลายเหลี่ยมจะถูกวาดเส้นขอบโดยใช้ปากกาและเติมสีโดยใช้แปรงและโหมดการเติมรูปหลายเหลี่ยมที่กำหนดไว้ในบริบทของอุปกรณ์เล่น[ 47 ]
เมตา_สี่เหลี่ยมผืนผ้า วาดสี่เหลี่ยมผืนผ้าซึ่งวาดเส้นขอบโดยใช้ปากกาและเติมสีโดยใช้แปรง โดยสีจะถูกเติมโดยใช้แปรงที่กำหนดไว้ในบริบทของอุปกรณ์เล่น[ 48 ]
เมตา_รอบ วาดสี่เหลี่ยมผืนผ้าที่มีมุมโค้งมน สี่เหลี่ยมผืนผ้าถูกวาดโครงร่างโดยใช้ปากกาและเติมสีโดยใช้แปรง และเติมสีโดยใช้แปรงที่กำหนดไว้ในบริบทของอุปกรณ์เล่น[ 49 ]
เมตา_เซตพิกเซล ตั้งค่าพิกเซลที่พิกัดที่ระบุให้เป็นสีที่ระบุ[ 50 ]
เมตาเท็กซ์เอาต์ ส่งออกสตริงอักขระที่ตำแหน่งที่ระบุโดยใช้แบบอักษร สีพื้นหลัง และสีข้อความที่กำหนดไว้ในบริบทของอุปกรณ์เล่น[ 51 ]

บันทึกวัตถุ

เรคอร์ดวัตถุสร้างและจัดการวัตถุกราฟิก ในไฟล์ WMF มีวัตถุอยู่สองประเภทหลัก ได้แก่ วัตถุกราฟิกและวัตถุโครงสร้าง วัตถุโครงสร้างจะไม่ถูกสร้างหรือลบอย่างชัดเจนใน WMF แต่จะเป็นโครงสร้างที่ซับซ้อนแทน ตัวอย่างเช่น BitmapCoreHeader มีข้อมูลเกี่ยวกับมิติและรูปแบบสีของบิตแมปที่ไม่ขึ้นกับอุปกรณ์[ 52 ]ซึ่งเป็นส่วนหนึ่งของวัตถุ DeviceIndependentBitmap [ 53 ]อย่างไรก็ตาม วัตถุกราฟิกจะระบุพารามิเตอร์สำหรับเอาต์พุตกราฟิก และในระหว่างการเล่น WMF จะตั้งค่าบริบทอุปกรณ์การเล่น[ 54 ]

วัตถุกราฟิกอาจเป็นแปรง (กำหนดรูปแบบ สี และลวดลายของแปรง ซึ่งกำหนดวิธีการระบายสีพื้นที่ของกราฟิก) ฟอนต์ (กำหนดคุณสมบัติที่มีผลต่อวิธีการแสดงข้อความ) พาเล็ต (ระบุสีเป็นค่าที่ไม่ขึ้นกับอุปกรณ์ ซึ่งกำหนดโดยแอปพลิเคชัน) ปากกา (ระบุคุณลักษณะกราฟิกของเส้น) และพื้นที่ (ซึ่งระบุส่วนของเส้นและเส้นโค้งที่กำหนดรูปร่าง) [ 54 ]

ชื่อ คำอธิบาย
META_CREATEBRUSHINDIRECT สร้างวัตถุแปรงจากวัตถุ LogBrush (แปรงเชิงตรรกะ) [ 55 ]
เมตา_สร้างฟอนต์โดยตรง สร้างวัตถุแปรงจากวัตถุแบบอักษร[ 56 ]
เมตา_ครีเอตาแพเล็ตต์ สร้างออบเจ็กต์พาเลท
META_CREATEPATTERNBRUSH [ 57 ]สร้างวัตถุแปรงจากวัตถุ LogBrush (แปรงเชิงตรรกะ) [ 58 ]
เมตา_สร้างเพนอินไดเร็กต์ สร้างวัตถุปากกา[ 59 ]
เมตา_ครีเอเตอร์เอเจียน สร้างวัตถุภูมิภาค[ 60 ]
เมตา_เดเลทีโอวัตถุ ลบวัตถุ[ 61 ]
META_CREATEBRUSHINDIRECT สร้างวัตถุแปรงจากวัตถุ LogBrush (แปรงเชิงตรรกะ) [ 62 ]
META_DIBCREATEPATTERNBRUSH สร้างวัตถุแปรงจากบิตแมปที่ไม่ขึ้นกับอุปกรณ์[ 63 ]
เมตา_เลือกคลิปภูมิภาค ระบุวัตถุภูมิภาคที่จะเป็นภูมิภาคการตัดปัจจุบัน [ 64 ]
เมตา_เลือกวัตถุ เลือกวัตถุที่จะเป็นวัตถุปัจจุบันสำหรับบริบทอุปกรณ์เล่น ซึ่งใช้งานได้กับวัตถุกราฟิกทั้งหมด ยกเว้นวัตถุพาเล็ต ซึ่งต้องตั้งค่าด้วย META_SELECTPALETTE [ 65 ]
เมตา_เลือกพาเลท เลือกพาเลทตรรกะสำหรับบริบทอุปกรณ์เล่น[ 66 ]

บันทึกของรัฐ

บันทึกสถานะจะจัดการคุณสมบัติกราฟิกของบริบทอุปกรณ์เล่น[ 67 ]

ชื่อ คำอธิบาย
เมตา_แอนิเมตพาเล็ตต์ กำหนดรายการใหม่ในพาเลทตรรกะที่กำหนดไว้ในบริบทอุปกรณ์เล่นด้วยวัตถุพาเลทที่ระบุ[ 68 ]
เมตา_เอ็กซ์คลูดีคลิป กำหนดขอบเขตการตัดที่กำหนดไว้ในบริบทของอุปกรณ์เล่นให้เป็นขอบเขตการตัดที่มีอยู่ลบด้วยสี่เหลี่ยมที่ระบุ[ 69 ]
เมตา_อินเตอร์เซคคลิปเรค กำหนดขอบเขตการตัดที่กำหนดไว้ในบริบทของอุปกรณ์เล่นให้เป็นจุดตัดระหว่างขอบเขตการตัดที่มีอยู่กับสี่เหลี่ยมผืนผ้าที่ระบุ[ 70 ]
เมตา_ย้ายไปยัง กำหนดตำแหน่งเอาต์พุตในบริบทของอุปกรณ์เล่นไปยังจุดที่ระบุ[ 71 ]
เมตา_ออฟเซ็ตคลิปอาร์เอ็น ย้ายขอบเขตการตัดที่กำหนดไว้ในบริบทของอุปกรณ์เล่นโดยใช้ค่าชดเชยที่ระบุ[ 72 ]
เมตา_ออฟเซ็ตวิวพอร์ตออร์ก ย้ายจุดกำเนิดวิวพอร์ตในบริบทอุปกรณ์เล่นโดยใช้ค่าชดเชยแนวนอนและแนวตั้งที่ระบุ[ 73 ]
เมตา_ออฟเซ็ตวินโดวอร์ก ย้ายจุดกำเนิดของหน้าต่างเอาต์พุตในบริบทของอุปกรณ์เล่นโดยใช้ค่าชดเชยแนวนอนและแนวตั้งที่ระบุ[ 74 ]
เมตา_เรียลไลซ์พาเล็ตต์ แมปรายการจากพาเลทตรรกะที่กำหนดไว้ในบริบทอุปกรณ์เล่นไปยังพาเลทระบบ[ 75 ]
พาเล็ตต์ปรับขนาดเมตา กำหนดขนาดของพาเลทตรรกะใหม่ซึ่งกำหนดไว้ในบริบทของอุปกรณ์เล่น[ 76 ]
เมตา_เรสเตอริดดีซี กู้คืนบริบทอุปกรณ์เล่นจากบริบทอุปกรณ์ที่บันทึกไว้ก่อนหน้านี้[ 77 ]
เมตา_เซฟดีซี บันทึกบริบทของอุปกรณ์เล่นเพื่อเรียกใช้ในภายหลัง[ 78 ]
META_SCALEVIEWPORTEXT ปรับขนาดขอบเขตแนวนอนและแนวตั้งของวิวพอร์ตที่กำหนดไว้ในบริบทของอุปกรณ์เล่นโดยใช้สัดส่วนที่สร้างขึ้นจากตัวคูณและตัวหารที่ระบุ[ 79 ]
เมตา_สเกลวินโดเว็กซ์ ปรับขนาดขอบเขตแนวนอนและแนวตั้งของหน้าต่างเอาต์พุตที่กำหนดไว้ในบริบทของอุปกรณ์เล่นโดยใช้สัดส่วนที่สร้างขึ้นจากตัวคูณและตัวหารที่ระบุ[ 80 ]
META_SETBKCOLOR ตั้งค่าสีพื้นหลังในบริบทของอุปกรณ์เล่นเป็นสีที่ระบุ[ 81 ]
META_SETBKMODE ตั้งค่าโหมดผสมพื้นหลังในบริบทของอุปกรณ์เล่น[ 82 ]
เมตา_เซ็ตเลย์เอาต์ กำหนดทิศทางการวางเค้าโครงในบริบทของอุปกรณ์เล่น[ 83 ]
META_SETMAPMODE กำหนดโหมดการแมปในบริบทของอุปกรณ์เล่น[ 84 ]
เมตา_เซ็ตแมปเปอร์แฟลกส์ กำหนดอัลกอริทึมที่ตัวแมปฟอนต์ใช้เมื่อแมปฟอนต์เชิงตรรกะไปยังฟอนต์ทางกายภาพ[ 85 ]
เมตา_เซ็ตพาเลนทรีส์ กำหนดค่าสี RGB ในช่วงของรายการในจานสีเชิงตรรกะที่กำหนดไว้ในบริบทของอุปกรณ์เล่น[ 86 ]
META_SETPOLYFILLMODE กำหนดโหมดการเติมโพลีกอนในบริบทอุปกรณ์เล่นสำหรับการดำเนินการกราฟิกที่เติมโพลีกอน[ 87 ]
เมตา_เซตเรแลบส์ บันทึกที่ไม่ได้ใช้[ 88 ]
เมตา_เซโทรป2 กำหนดโหมดการผสมการทำงานของแรสเตอร์พื้นหน้าในบริบทของอุปกรณ์เล่น[ 89 ]
META_SETSTRETCHBLTMODE กำหนดโหมดการยืดบิตแมปในบริบทของอุปกรณ์เล่น[ 90 ]
เมตา_เซ็ตเท็กซ์ทัลลิก กำหนดค่าการจัดตำแหน่งข้อความในบริบทของอุปกรณ์เล่น[ 91 ]
เมตา_เซตข้อความชาร์เอ็กซ์ทรา กำหนดระยะห่างระหว่างตัวอักษรสำหรับการจัดเรียงข้อความในบริบทของอุปกรณ์เล่น[ 92 ]
เมตา_ตั้งค่าสีข้อความ กำหนดสีพื้นหน้าของข้อความในบริบทของอุปกรณ์เล่น[ 93 ]
เมตา_เซ็ตเท็กซ์จัสติซิเอชั่น กำหนดปริมาณพื้นที่ที่จะเพิ่มเพื่อแบ่งอักขระในสตริงข้อความที่จัดชิดขอบ[ 94 ]
META_SETVIEWPORTEXT กำหนดขอบเขตแนวนอนและแนวตั้งของวิวพอร์ตในบริบทของอุปกรณ์เล่น[ 95 ]
เมตา_เซ็ตวิวพอร์ตออร์ก กำหนดจุดกำเนิดวิวพอร์ตในบริบทอุปกรณ์เล่น[ 96 ]
เมตา_เซ็ตวินโดว์เอ็กซ์เทกซ์ กำหนดขอบเขตแนวนอนและแนวตั้งของหน้าต่างเอาต์พุตในบริบทของอุปกรณ์เล่น[ 97 ]
เมตา_เซ็ตวินโดวอร์ก กำหนดจุดกำเนิดของหน้าต่างเอาต์พุตในบริบทของอุปกรณ์เล่น[ 98 ]

บันทึกการหลบหนี

บันทึกการหลบหนีทั่วไปของ WMF

เรคอร์ด Escape เป็นวิธีการขยายฟังก์ชันการทำงานของเมตาไฟล์ผ่านเรคอร์ดที่ไม่ได้กำหนดไว้เป็นประเภทเรคอร์ด WMF เรคอร์ด Escape แต่ละรายการประกอบด้วยฟังก์ชันเรคอร์ด ฟังก์ชัน Escape และข้อมูล Escape (อาจมี)

ข้อมูลการหลบหนีต่อไปนี้ประกอบกันเป็นไฟล์ WMF

ชื่อ คำอธิบาย
ABORTDOC หยุดการประมวลผลเอกสารปัจจุบัน[ 99 ]
เริ่มต้นเส้นทาง เปิดเส้นทาง[ 100 ]
ตรวจสอบรูปแบบ JPEG ตรวจสอบว่าสามารถจัดการกับภาพJPEG ที่กำหนดได้หรือไม่ [ 101 ]
ตรวจสอบรูปแบบ PNG ตรวจสอบว่าสามารถจัดการกับภาพPNG ที่กำหนดได้หรือไม่ [ 102 ]
คลิปไปยังเส้นทาง ใช้ฟังก์ชันกับเส้นทางการตัดPostScript ปัจจุบัน [ 103 ]
ปิดช่องทาง เช่นเดียวกับ ENDDOC [ 104 ]
ดาวน์โหลด_เฟซ กำหนดชื่อแบบอักษรบนอุปกรณ์แสดงผล[ 105 ]
ดาวน์โหลด_ส่วนหัว ดาวน์โหลดชุดขั้นตอน PostScript [ 106 ]
วาดลวดลาย วาดรูปสี่เหลี่ยมผืนผ้าที่มีรูปแบบที่กำหนดไว้[ 107 ]
เอนแคปซูเลเตด_โพสต์สคริปต์ ส่ง ข้อมูล PostScript (EPS) ที่ห่อหุ้มตามอำเภอใจไปยังไดรเวอร์เครื่องพิมพ์โดยตรง[ 108 ]
เส้นทางสิ้นสุด สิ้นสุดเส้นทาง[ 109 ]
ENDDOC แจ้งให้ไดรเวอร์เครื่องพิมพ์ทราบว่างานพิมพ์ใหม่กำลังจะเสร็จสิ้น[ 110 ]
การพิมพ์ EPS ระบุจุดเริ่มต้นและจุดสิ้นสุดของการพิมพ์ EPS [ 111 ]
เอาต์พุตข้อความ วาดข้อความโดยใช้แบบอักษร สีพื้นหลัง และสีข้อความที่เลือกในปัจจุบัน[ 112 ]
รับตารางสี รับค่าตารางสีจากไดรเวอร์เครื่องพิมพ์[ 113 ]
GET_DEVICEUNITS รับหน่วยอุปกรณ์ที่กำหนดค่าไว้ในอุปกรณ์เอาต์พุตในปัจจุบัน[ 114 ]
รับเมตริกข้อความขยาย รับเมตริกข้อความเพิ่มเติมที่กำหนดค่าไว้ในไดรเวอร์เครื่องพิมพ์ในปัจจุบัน[ 115 ]
GET_FACENAME รับชื่อแบบอักษรที่กำหนดค่าไว้ในอุปกรณ์เอาต์พุตในปัจจุบัน[ 116 ]
GET_PAIRKERNTABLE รับ ตาราง ระยะห่างตัวอักษรของฟอนต์ที่กำหนดไว้ในอุปกรณ์เอาต์พุตในปัจจุบัน[ 117 ]
GET_PHYSPAGESIZE ดึงขนาดหน้าทางกายภาพที่เลือกไว้ในปัจจุบันบนอุปกรณ์เอาต์พุต[ 118 ]
GET_PRINTINGOFFSET ดึงค่าออฟเซ็ตจากมุมบนซ้ายของหน้ากระดาษจริงที่การพิมพ์หรือการวาดเริ่มต้นขึ้น[ 119 ]
GET_PS_FEATURESETTING สอบถามไดรเวอร์เครื่องพิมพ์เพื่อขอข้อมูลเกี่ยวกับคุณสมบัติ PostScript ที่รองรับบนอุปกรณ์เอาต์พุต[ 120 ]
รับค่าแฟกเตอร์การปรับขนาด ดึงค่าตัวคูณการปรับขนาดสำหรับแกน x และแกน y ของเครื่องพิมพ์[ 121 ]
เมตา_เอสเคป_ปรับปรุง_เมตาไฟล์ ใช้เพื่อฝังเมตาไฟล์ EMF ภายในเมตาไฟล์ WMF [ 122 ]
เมตาไฟล์_ไดรเวอร์ สอบถามไดรเวอร์เครื่องพิมพ์เกี่ยวกับการรองรับเมตาไฟล์บนอุปกรณ์เอาต์พุต[ 123 ]
นิวเฟรม แจ้งให้ไดรเวอร์เครื่องพิมพ์ทราบว่าแอปพลิเคชันได้เขียนหน้าเสร็จแล้ว[ 124 ]
เน็กซ์แบนด์ แจ้งให้ไดรเวอร์เครื่องพิมพ์ทราบว่าแอปพลิเคชันได้เขียนข้อมูลลงในแถบเสร็จแล้ว[ 125 ]
ทางผ่าน ส่งข้อมูลตามอำเภอใจไปยังไดรเวอร์เครื่องพิมพ์[ 126 ]
ข้อมูลโพสต์สคริปต์ ส่งข้อมูล PostScript ที่กำหนดเองไปยังอุปกรณ์เอาต์พุต[ 127 ]
โพสต์สคริปต์_ระบุตัวตน ตั้งค่าไดรเวอร์เครื่องพิมพ์เป็นโหมด PostScript หรือ GDI [ 128 ]
ข้อความเพิ่มเติม_ละเว้น แจ้งอุปกรณ์เอาต์พุตให้ละเว้นข้อมูล PostScript [ 129 ]
การแทรกโพสต์สคริปต์ แทรกบล็อกข้อมูลดิบลงในสตรีม PostScript [ 130 ]
การส่งผ่านโพสต์สคริปต์ ส่งข้อมูลตามอำเภอใจโดยตรงไปยังไดรเวอร์เครื่องพิมพ์ ซึ่งคาดว่าจะประมวลผลข้อมูลนี้เฉพาะเมื่ออยู่ในโหมด PostScript เท่านั้น[ 131 ]
ช่องทางเปิด ทำงานเหมือนกับ STARTDOC โดยมีเอกสารและชื่อไฟล์เอาต์พุตเป็น NULL และข้อมูลในโหมดดิบ[ 132 ]
QUERY_DIBSUPPORT สอบถามไดรเวอร์เครื่องพิมพ์เกี่ยวกับการรองรับ DIB บนอุปกรณ์เอาต์พุต[ 133 ]
QUERY_ESCSUPPORT สอบถามไดรเวอร์เครื่องพิมพ์เพื่อตรวจสอบว่าอุปกรณ์เอาต์พุตรองรับฟังก์ชันหลีกเลี่ยง WMF เฉพาะหรือไม่[ 134 ]
ตั้งค่าตารางสี กำหนดค่าตารางสี[ 135 ]
SET_COPYCOUNT กำหนดจำนวนสำเนา[ 136 ]
SET_LINECAP ระบุโหมดการจบเส้นที่จะใช้ในการวาดไปยังอุปกรณ์เอาต์พุต[ 137 ]
SET_LINEJOIN ระบุโหมดการเชื่อมต่อเส้นที่จะใช้ในการวาดไปยังอุปกรณ์เอาต์พุต[ 138 ]
SET_MITERLIMIT กำหนดขีดจำกัดสำหรับความยาวของรอยต่อมุมฉากที่จะใช้ในการวาดไปยังอุปกรณ์เอาต์พุต[ 139 ]
SPCLPASSTHROUGH2 ช่วยให้เอกสารสามารถรวมขั้นตอนส่วนตัวและข้อมูลอื่นๆ ที่กำหนดเองไว้ในเอกสารได้[ 140 ]
เอกสารเริ่มต้น แจ้งให้ไดรเวอร์เครื่องพิมพ์ทราบว่างานพิมพ์ใหม่กำลังเริ่มต้น[ 141 ]

พบช่องโหว่สำคัญในบันทึกการหลีกเลี่ยงเกี่ยวกับบันทึกการหลีกเลี่ยง Abort ซึ่งเก็บรหัสขั้นตอนการยกเลิกไว้ภายในบันทึกนั้นเอง ช่องโหว่นี้ส่งผลกระทบต่อระบบ Windows (ดูCVE - 2005-4560 ) และโครงการ Wine (ดูCVE - 2006-0106 ) ตามที่Secuniaระบุว่า "ช่องโหว่นี้เกิดจากข้อผิดพลาดในการจัดการไฟล์ Windows Metafile ('.wmf') ที่มีบันทึก SETABORTPROC 'Escape' ที่สร้างขึ้นเป็นพิเศษ บันทึกดังกล่าวอนุญาตให้ เรียกใช้ ฟังก์ชันที่ผู้ใช้กำหนด เองได้ เมื่อการแสดงผลไฟล์ WMF ล้มเหลว" [ 142 ]ตามเอกสารประกอบ SDK ของ Windows 3.1 การหลีกเลี่ยง SETABORTPROC ถูกยกเลิกและแทนที่ด้วยฟังก์ชันที่มีชื่อเดียวกันใน Windows 3.1 นานก่อนที่จะมีการค้นพบช่องโหว่ WMF [ 143 ]อย่างไรก็ตาม รหัสหลีกเลี่ยงที่ล้าสมัยยังคงถูกเก็บไว้เพื่อความเข้ากันได้กับโปรแกรม 16 บิตที่เขียนขึ้นสำหรับ (หรืออย่างน้อยก็เข้ากันได้กับ) Windows 3.0 การเปลี่ยนแปลงนี้เกิดขึ้นในเวลาเดียวกันกับที่ Microsoft กำลังสร้างการใช้งาน GDI 32 บิตใหม่สำหรับ Windows NT และเป็นไปได้ว่าช่องโหว่นี้เกิดขึ้นระหว่างความพยายามดังกล่าว

หลังจากที่Steve Gibsonกล่าวหาว่า Microsoft จงใจใส่ช่องโหว่เข้าไปในโค้ดของพวกเขา[ 144 ] [ 145 ] Mark Russinovichได้โต้แย้งและระบุว่า:

...สิ่งต่างๆ แตกต่างออกไปเมื่อมีการออกแบบรูปแบบนี้ ในโมเดลหน่วยความจำ "ขนาดใหญ่" ของ Windows 3.1 โค้ดนั้นเป็นอิสระจากตำแหน่งโดยเนื้อแท้ และ Windows ไม่เคยได้รับการแก้ไข ดังนั้นทั้ง Windows และแอปพลิเคชันจึงสามารถคัดลอกฟังก์ชันของแอปพลิเคชันลงในไฟล์ WMF และสันนิษฐานได้ว่ามันจะทำงานได้เมื่อเล่นซ้ำโดยแอปพลิเคชันเดียวกันในเซสชันการทำงานในภายหลัง ไม่ว่าในกรณีใด ก็ไม่ชัดเจนว่านักพัฒนาได้จินตนาการถึงแอปพลิเคชันที่สร้างเมตาไฟล์บนดิสก์พร้อมขั้นตอนการยกเลิกหรือไม่ นอกจากนี้ ดังที่ Stephen Toulouse ของ Microsoft ชี้ให้เห็นในการโต้แย้งของ Microsoftต่อข้อกล่าวอ้างของ Steve ภูมิทัศน์ด้านความปลอดภัยในช่วงต้นทศวรรษ 1990 นั้นแตกต่างจากปัจจุบันมาก และโค้ดทั้งหมด รวมถึงโค้ดที่จัดเก็บไว้ในไฟล์ WMF นั้นได้รับการไว้วางใจโดยเนื้อแท้[ 146 ]

ปีเตอร์ เฟอร์รี จาก Symantec Security Response ประเทศสหรัฐอเมริกา ก็ไม่เห็นด้วยกับกิบสัน โดยกล่าวว่า:

กิบสันอ้างว่ามีการสร้างเธรดเพื่อเรียกใช้ฟังก์ชันจัดการ SetAbortProc แต่ในความเป็นจริงแล้ว ไม่มีเธรดใดถูกสร้างขึ้นเพื่อเรียกใช้ฟังก์ชันจัดการนี้ มันเป็นเพียงฟังก์ชันเรียกกลับ (callback) ที่ถูกเรียกโดยตัวแยกวิเคราะห์ (parser) และตัวแยกวิเคราะห์จะต้องรอจนกว่าฟังก์ชันเรียกกลับจะส่งค่ากลับมา มิฉะนั้นแล้วจุดประสงค์ทั้งหมดของฟังก์ชัน (เพื่อยกเลิกการพิมพ์) ก็จะหายไป กิบสันยอมรับเองว่าเขาไม่ได้อ่านเอกสาร (ในความเป็นจริง เขาอ้างว่าเขาหาเอกสารไม่เจอ ทั้งๆ ที่เอกสารนั้นมีให้ใช้งานได้ฟรีบนเว็บไซต์ของ Microsoft) และเขายังอ้างว่าบริบทของอุปกรณ์ (device context) ไม่สามารถใช้งานได้ในฟังก์ชันจัดการ แน่นอนว่าบริบทของอุปกรณ์นั้นสามารถใช้งานได้ในฟังก์ชันจัดการ — มันเป็นหนึ่งในสองพารามิเตอร์ที่ส่งผ่านไปยังฟังก์ชัน (ดูด้านบน) และจำเป็นสำหรับการยกเลิกการพิมพ์ สุดท้าย กิบสันอ้างว่าการควบคุมการทำงานไม่สามารถกลับไปยัง Windows ได้ มันเป็นเพียงเรื่องของการที่ฟังก์ชันส่งค่ากลับและทิ้งพารามิเตอร์ที่ส่งผ่านบนสแต็ก หากเรคอร์ดนั้นถูกต้องตามรูปแบบ Windows ก็จะดำเนินการแยกวิเคราะห์ไฟล์ต่อไปเช่นเดิม ... กิบสันยอมรับว่าเขาเดาเกี่ยวกับหลายสิ่งหลายอย่าง น่าเสียดายที่เขาเดาผิด ผมคิดว่าตอนนี้เรารู้ดีขึ้นแล้ว[ 147 ]

เอ็มเอฟ

เมตาไฟล์ที่ได้รับการปรับปรุง
นามสกุลไฟล์
.emf
สื่อประเภทอินเทอร์เน็ต
ภาพ/emf [ 10 ]
ตัวระบุประเภทมาตรฐาน (UTI)com.microsoft.emf [ 10 ]
ประเภทของรูปแบบกราฟิกเวกเตอร์
ขยายจากดับเบิลยูเอ็มเอฟ
ขยายไปยังEMF+
ส่วนหัวของ Windows Enhanced Metafile

ไฟล์ EMF มีส่วนหัวที่เป็นไปได้สามเวอร์ชัน ส่วนหัวดั้งเดิมเป็นเพียงคอนเทนเนอร์สำหรับรูปภาพ เวอร์ชันที่สองและสามจะห่อหุ้มส่วนหัวดั้งเดิมและมีบันทึกรูปแบบพิกเซลและการสนับสนุนบันทึก OpenGL และเวอร์ชันที่สามจะห่อหุ้มส่วนขยายส่วนหัวที่สองและเพิ่มความแม่นยำและความสามารถในการปรับขนาดของ EMF เนื่องจากเพิ่มความสามารถในการวัดระยะทางของพื้นผิวอุปกรณ์โดยใช้ระบบเมตริก[ 148 ]

ส่วนหัว EMF แต่ละส่วนเริ่มต้นด้วยเรคอร์ด EMR_HEADER และบันทึกคุณสมบัติที่เกี่ยวข้องของอุปกรณ์ที่บันทึกภาพเมตาไฟล์ ส่วนหัว EMF ดั้งเดิมมีส่วนหัวขนาด 80 ไบต์และสตริงคำอธิบายความยาวแปรผันที่เป็นตัวเลือก[ 149 ]เมตาไฟล์อื่นๆ มีฟิลด์ส่วนขยายซึ่งห่อหุ้มส่วนหัวดั้งเดิมEmfMetafileHeaderExtension1เป็นเรคอร์ดที่แทรกโดยตรงหลังจากส่วนหัว EMF ดั้งเดิม ระบุว่ามีตัวอธิบายรูปแบบพิกเซลและออฟเซ็ตไปยังวัตถุตัวอธิบายภายในส่วนหัวหรือไม่ รวมถึงฟิลด์ที่ระบุว่า มีเรคอร์ด OpenGLอยู่ในเมตาไฟล์ หรือไม่ [ 150 ]ตัวอธิบายรูปแบบพิกเซลระบุความสามารถของพื้นผิวการวาดและว่าพิกเซลถูกเข้ารหัสในRGBAหรือเป็นดัชนีในตารางสี[ 151 ]EmfMetafileHeaderExtension2เป็นเรคอร์ดที่แทรกโดยตรงหลังจากEmfMetafileHeaderExtension1เรคอร์ด และมีสองฟิลด์ที่มีค่า X และ Y เพื่อวัดพื้นผิวอุปกรณ์ในหน่วยไมโครเมตร[ 152 ]

เช่นเดียวกับไฟล์ WMF ไฟล์ EMF สามารถจำแนกประเภทตามฟังก์ชันได้ อย่างไรก็ตาม ไฟล์ EMF มีประเภทบันทึกมากกว่าไฟล์ WMF บันทึกสามารถจำแนกได้เป็น บันทึกควบคุม บันทึกบิตแมป บันทึกการตัด บันทึกความคิดเห็น บันทึกการวาด บันทึกการหลีกเลี่ยง บันทึกการสร้างวัตถุ บันทึกการจัดการวัตถุ OpenGL บันทึกวงเล็บเส้นทาง บันทึกสถานะ และบันทึกการแปลง

EMF+

พร้อมกับการเปิดตัวWindows XPได้ มีการนำรูปแบบ Enhanced Metafile Format Plus Extensions (EMF+) มาใช้ EMF+ เป็นวิธีการในการจัดลำดับการเรียกใช้ API ของGDI+ในลักษณะเดียวกับที่ WMF/EMF จัดเก็บการเรียกใช้ GDI

นอกจากนี้ยังมีเวอร์ชันบีบอัดของ Windows Metafile ที่เรียกว่าCompressed Windows Metafile (WMZ) และCompressed Windows Enhanced Metafile (EMZ) [ 153 ]ซึ่งโดยพื้นฐานแล้วคือไฟล์ WMF และ EMF ที่บีบอัดด้วย gzip ตามลำดับ

การนำไปใช้

รูปแบบไฟล์ WMF ถูกออกแบบมาเพื่อใช้งานโดยเลเยอร์ GDI ของ Windows เพื่อกู้คืนภาพแต่เนื่องจากไฟล์ไบนารี WMF มีคำจำกัดความขององค์ประกอบกราฟิก GDI ที่ประกอบเป็นภาพนั้น จึงเป็นไปได้ที่จะออกแบบไลบรารีทางเลือกที่แสดงผลไฟล์ไบนารี WMF หรือแปลงเป็นรูปแบบกราฟิกอื่นๆ

ดูเพิ่มเติม

  • ข้อกำหนดรูปแบบไฟล์เมตาของ Windows จาก Microsoft
  • เมตาไฟล์ – แอปพลิเคชัน Windows
  • สรุปข้อมูลรูปแบบไฟล์ได้ที่ fileformat.info
  • คำถามที่พบบ่อยเกี่ยวกับ Windows Metafile
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Windows_Metafile&oldid=1357783886 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ไฟล์เมตาของ Windows

Windows Metafile ( WMF ) เป็นรูปแบบไฟล์ภาพที่ออกแบบมาสำหรับMicrosoft Windowsในช่วงทศวรรษ 1990 รูปแบบ Windows Metafile ดั้งเดิมนั้นไม่เป็นอิสระจากอุปกรณ์...

ประวัติศาสตร์

รูปแบบไฟล์ WMF 16 บิต ดั้งเดิมได้รับการระบุอย่างครบถ้วนในเล่มที่ 4 ของ เอกสารประกอบ Windows 3.

โครงสร้างเมตาไฟล์

ไฟล์ WMF, EMF และ EMF+ ประกอบด้วยชุดของระเบียนที่ถูกนำมาเล่นเพื่อสร้างเอาต์พุตแบบกราฟิก ระเบียนบางส่วนกำหนดวัตถุที่สามารถระบุวัตถุกราฟิกที่ใช้ในการกำหนดวิธีการวาดภาพ (เช่น ปากการะบุสีและความกว้างของเส้น)...

ดับเบิลยูเอ็มเอฟ

ไฟล์ WMF ไม่ได้ถูกออกแบบมาให้ใช้งานได้กับอุปกรณ์ทุกชนิดตั้งแต่แรก ซึ่งหมายความว่าไฟล์จะไม่สามารถเล่นบนอุปกรณ์เอาต์พุตที่แตกต่างจากอุปกรณ์ดั้งเดิมที่บันทึกไฟล์นั้นไว้ได้ บริษัท Aldus Corporation ได้คิดค้นวิธีแก้ปัญหาบางส่วน โดยเพิ่มส่วนหัวที่ "วางได้"...