BMP เป็นรูปแบบภาพบิตแมปที่ Microsoft ใส่มาใน Windows และเป็นส่วนหนึ่งของระบบมาตั้งแต่เวอร์ชันกราฟิกยุคแรกๆ; มีรูปแบบใกล้เคียงกันจาก OS/2 ของ IBM แนวคิดของมันไม่ใช่การบีบอัดที่ซับซ้อน BMP ใกล้เคียงกับการเทข้อมูลพิกเซลดิบที่โปรแกรมจะแสดงบนหน้าจอ แล้วห่อด้วยส่วนหัวสั้นๆ ที่อธิบายวิธีอ่าน คุณยังคงพบไฟล์ BMP ในรูปของไอคอนและทรัพยากรภายในซอฟต์แวร์ Windows ในผลลัพธ์จากโปรแกรมจับภาพแบบง่าย และในฐานะรูปแบบกลางเมื่อโปรแกรมหนึ่งส่งภาพต่อให้อีกโปรแกรมหนึ่ง
BMP จัดเก็บรูปภาพอย่างไร
แทบจะเป็นไฟล์ที่ไม่บีบอัดเสมอ ไฟล์จะเริ่มด้วยส่วนหัวขนาดเล็กที่มีตัวอักษรสองตัว BM ขนาดไฟล์ และตำแหน่งที่พิกเซลเริ่มต้น จากนั้นเป็นส่วนหัวที่สองซึ่งอธิบายตัวภาพเอง: ความกว้าง ความสูง ความลึกบิต และการจัดเรียงสี หลังจากนั้นอาจมีพาเลตแบบเลือกได้ แล้วตามด้วยอาร์เรย์พิกเซล ซึ่งเป็นค่าหนึ่งค่าต่อหนึ่งพิกเซลโดยไม่ตัดอะไรออก
มีรายละเอียดต่างจากคาดอยู่สองอย่าง แถวของพิกเซลมักถูกเก็บจากล่างขึ้นบน ดังนั้นพิกเซลแรกในไฟล์คือมุมล่างซ้ายของภาพ และทุกแถวจะถูกเติมให้ยาวถึงตัวคูณของ 4 ไบต์ ความลึกบิตรันตั้งแต่ 1 บิต ซึ่งหมายถึง 2 สี ผ่านพาเลต 4 บิตและ 8 บิต ไปจนถึง 16, 24 และ 32 บิตแบบสีเต็ม มีการบีบอัดแบบ run-length สำหรับโหมด 4 และ 8 บิต แต่แทบไม่ค่อยใช้ และโหมด 32 บิตสามารถเก็บช่องอัลฟาสำหรับความโปร่งใส แม้ว่าโปรแกรมเก่ามักจะไม่สนใจข้อมูลนี้
เพราะไม่มีการบีบอัด ขนาดไฟล์จึงคาดเดาได้และใหญ่: BMP แบบ 24 บิตใช้ 3 ไบต์ต่อพิกเซลไม่ว่าภาพจะมีอะไรอยู่ก็ตาม ดังนั้นภาพถ่ายที่เก็บใน JPG ขนาดเล็กอาจกลายเป็นหลายเมกะไบต์ แลกกับนั้นคือรูปแบบนี้อ่านและเขียนได้ง่ายมาก และเป็นแบบไม่สูญเสียข้อมูล: ไม่มีรายละเอียดใดถูกทิ้งไป
BMP มีเมทาดาทาอะไรบ้าง
มีน้อยมาก และนั่นคือสิ่งสำคัญที่สุดที่ควรรู้เกี่ยวกับรูปแบบนี้ เมทาดาทาคือข้อมูลคำอธิบายที่ไฟล์เก็บเกี่ยวกับตัวมันเอง และ BMP ถูกออกแบบมาก่อนที่แนวคิดนี้จะสำคัญ BMP ไม่มี EXIF ไม่มี IPTC และไม่มี XMP จึงไม่มีที่เก็บรุ่นกล้อง ชื่อช่างภาพ คำบรรยาย หรือพิกัด GPS ไม่มีช่องผู้เขียน ไม่มีชื่อเรื่อง และไม่มีช่องวันที่ในรูปแบบใดเลย: วันที่เดียวของ BMP คือวันที่ที่ระบบไฟล์เก็บไว้ ซึ่งอยู่นอกไฟล์และเปลี่ยนทุกครั้งเมื่อไฟล์ถูกคัดลอก
สิ่งที่รายงานจะแสดงได้มาจากส่วนหัว และเป็นการอธิบายตัวภาพมากกว่าประวัติของมัน:
- ความกว้าง ความสูง และความลึกบิต รวมถึงว่าแถวของพิกเซลเรียงจากล่างขึ้นบนหรือจากบนลงล่าง
- วิธีการบีบอัด ซึ่งโดยปกติคือไม่มีการบีบอัดเลย
- ความละเอียดแนวนอนและแนวตั้ง ซึ่งเก็บเป็นจำนวนพิกเซลต่อเมตร แทนที่จะเป็นจุดต่อนิ้วแบบที่คุ้นเคยกว่า
- จำนวนสีที่พาเลตเก็บได้ และจำนวนสีที่ภาพมองว่าสำคัญ
มีประเด็นด้านความเป็นส่วนตัวอยู่อย่างหนึ่ง ส่วนหัวแบบขยายสามารถแนบโปรไฟล์สี ICC และอนุญาตให้ลิงก์โปรไฟล์แทนการฝัง โดยเก็บเป็นเส้นทางไฟล์บนเครื่องที่บันทึกภาพ เส้นทางแบบนี้อาจเผยชื่อผู้ใช้หรือโครงสร้างโฟลเดอร์ของใครบางคนได้ แม้จะพบไม่บ่อย แต่หากรายงานแสดงโปรไฟล์แบบลิงก์ นั่นคือรายละเอียดจริงเกี่ยวกับคอมพิวเตอร์ของบุคคลหนึ่ง ที่อยู่ในไฟล์ซึ่งโดยทั่วไปไม่มีข้อมูลอื่นใด
ควรใช้ BMP เมื่อใด
BMP มีเหตุผลเมื่อต้องการความเรียบง่ายมากกว่าขนาดไฟล์: ส่งภาพให้โปรแกรมหรืออุปกรณ์ที่มีตัวถอดรหัสแบบพื้นฐาน ทำงานภายในซอฟต์แวร์ Windows ที่คาดหวังรูปแบบนี้ หรือส่งภาพระหว่างสองขั้นตอนของกระบวนการที่การบีบอัดใหม่จะเป็นการเปลืองแรง เนื่องจากเป็นแบบไม่สูญเสียข้อมูล คุณจึงบันทึกซ้ำได้หลายครั้งโดยไม่ทำให้ภาพเสื่อมคุณภาพ
สำหรับไฟล์ที่คุณต้องการเก็บ ส่ง หรือเผยแพร่ PNG เป็นตัวเลือกที่ดีกว่า มันก็ไม่สูญเสียข้อมูลเช่นกัน ดังนั้นพิกเซลจะกลับมาเหมือนเดิมทุกประการ แต่การกรองและการบีบอัดมักทำให้ขนาดไฟล์เหลือเพียงเศษหนึ่งส่วนของเดิม และยังสามารถเก็บชื่อเรื่อง ผู้เขียน และโปรไฟล์สีได้ สำหรับภาพถ่าย JPG หรือ WebP จะยิ่งมีขนาดเล็กกว่าอีก เลือกใช้ BMP ด้วยเหตุผลทางเทคนิคอย่างตั้งใจ ไม่ใช่เพราะค่าปริยาย