ภายในไฟล์ BMP มีอะไรบ้าง
BMP ย่อมาจาก bitmap (บิตแมป) เป็นรูปแบบภาพที่ Windows ใช้มาตั้งแต่เวอร์ชันแรก ๆ และเรียบง่ายที่สุดเท่าที่ไฟล์ภาพจะเป็นได้ คือมีคำอธิบายภาพสั้น ๆ ตามด้วยสีของทุกพิกเซลเรียงต่อกันไปทีละพิกเซล
ส่วนหัว พาเลต และพิกเซล
ไฟล์ BMP เริ่มด้วยส่วนหัวไฟล์ขนาด 14 ไบต์ และส่วนหัวข้อมูลภาพที่บันทึกความกว้าง ความสูง และความลึกสี ภาพที่มีไม่เกิน 256 สีจะระบุสีทั้งหมดไว้ในพาเลต จากนั้นจึงเป็นพิกเซลทีละแถว ซึ่งมักเริ่มจากแถวล่างสุดของภาพแล้วไล่ขึ้นไป
ความลึกบิต
ความลึกบิตกำหนดว่าหนึ่งพิกเซลแทนสีได้กี่สี บิตแมป 1 บิตเป็นขาวดำ 4 บิตมี 16 สี 8 บิตมี 256 สี และไฟล์ 24 บิตเก็บได้ 16.7 ล้านสี ส่วน BMP 32 บิตเพิ่มไบต์ที่สี่เข้ามา ซึ่งบางโปรแกรมใช้เก็บความโปร่งใส แต่บางโปรแกรมปล่อยไว้เป็นเพียงไบต์เติม
ทำไม BMP ยังไม่หายไป
เพราะเรียบง่ายมาก โปรแกรมหรืออุปกรณ์ใดก็เขียนไฟล์ BMP ได้ง่าย เกมเก่า ยูทิลิตี้ของ Windows โปรแกรมแก้ไขสไปรต์ และจอแสดงผลแบบฝังตัวยังคงสร้างไฟล์นี้อยู่ งานแปลง BMP เป็น PNG จึงยังเป็นเรื่องที่พบบ่อย
ทำไมไฟล์ BMP จึงใหญ่มาก
BMP ส่วนใหญ่ไม่ได้บีบอัดเลย ขนาดไฟล์คือความกว้าง × ความสูง × จำนวนไบต์ต่อพิกเซล บวกไบต์เติมอีกเล็กน้อย
ลองคิดเลขดู
ภาพหน้าจอ Full HD มีขนาด 1920 × 1080 พิกเซล ที่ 24 บิตคือ 3 ไบต์ต่อพิกเซล หรือราว 6.2 MB ไม่ว่าหน้าจอจะแสดงภาพถ่ายที่มีรายละเอียดมากหรือหน้ากระดาษขาวโล่ง ๆ ส่วนภาพหน้าจอเดียวกันเมื่อเป็น PNG มักมีขนาดเพียงไม่กี่ร้อยกิโลไบต์
การเติมไบต์ท้ายแถว
พิกเซลแต่ละแถวจะถูกเติมไบต์ให้ลงตัวกับผลคูณของ 4 ไบต์ สำหรับภาพขนาดใหญ่ส่วนนี้เพิ่มขนาดไม่มาก แต่สะท้อนให้เห็นว่า BMP เก็บภาพแบบตรงตัว คือไบต์ต่อไบต์ โดยไม่พยายามประหยัดพื้นที่เลย
BMP แบบบีบอัดมีอยู่ แต่พบน้อย
รูปแบบนี้อนุญาตให้ใช้การบีบอัดแบบ run-length อย่างง่ายกับภาพ 4 และ 8 บิต ซึ่งช่วยได้กับพื้นที่สีเรียบขนาดใหญ่ แต่โปรแกรมส่วนใหญ่ไม่ใช้ และบิตแมป 24 บิตใช้ไม่ได้เลย
การแปลง BMP เป็น PNG ช่วยกำจัดส่วนที่สิ้นเปลืองนี้โดยไม่แตะต้องพิกเซลแม้แต่พิกเซลเดียว PNG จึงมักเล็กกว่า 80–95% รายการผลลัพธ์จะแสดงขนาดที่ประหยัดได้จริงของแต่ละไฟล์
วิธีแปลง BMP เป็น PNG ใน 3 ขั้นตอน
วางไฟล์ BMP ของคุณ
ลากไฟล์ .bmp หนึ่งไฟล์ขึ้นไปมาวางในกรอบเส้นประ หรือคลิกเพื่อเลือกไฟล์ แต่ละไฟล์ถูกอ่านในเบราว์เซอร์ของคุณ ไม่มีการอัปโหลดใด ๆ
เลือก PNG ไว้
PNG เป็นค่าเริ่มต้นและไม่สูญเสียคุณภาพ หากบิตแมปของคุณเป็นสไปรต์ที่วาดบนพื้นแมเจนตาล้วน ให้ติ๊ก "ทำให้สีแมเจนตา (#FF00FF) โปร่งใส"
ดาวน์โหลดไฟล์ PNG
คลิก "ดาวน์โหลด" ข้างไฟล์ หรือ "ดาวน์โหลดทั้งหมดเป็น ZIP" ผลลัพธ์แต่ละไฟล์จะแสดงความลึกบิตของบิตแมปและบอกว่า PNG เล็กลงเท่าไร
วางไฟล์ BMP หนึ่งไฟล์ขึ้นไป
เลือก PNG ไว้ แล้วเปิดตัวเลือกสีแมเจนตาสำหรับสไปรต์
ดาวน์โหลด PNG ทีละไฟล์หรือทั้งหมดเป็น ZIP
แปลง BMP เป็น PNG ไม่สูญเสียคุณภาพ — เพราะอะไร
PNG บีบอัดโดยไม่ทิ้งข้อมูลใดเลย มันมองหาสิ่งที่ซ้ำกัน เช่น แถวพิกเซลที่เหมือนกันหรือลวดลายที่วนซ้ำ แล้วเก็บไว้เพียงครั้งเดียว
พิกเซลเดิม ไฟล์เล็กลง
BMP ที่แปลงเป็น PNG จะถอดรหัสออกมาได้พิกเซลเดียวกับบิตแมปต้นฉบับทุกประการ สี ขอบ และตัวอักษรเหมือนเดิมทั้งหมด ซึ่งสำคัญมากสำหรับภาพหน้าจอ ม็อกอัปส่วนติดต่อผู้ใช้ และพิกเซลอาร์ต ที่แม้พิกเซลเดียวเปลี่ยนไปก็มองเห็นได้
บิตแมปพาเลตยังคงเป็นภาพแบบพาเลต
บิตแมป 1, 4 และ 8 บิตใช้พาเลตที่มีไม่เกิน 256 สี ตัวแปลงนี้บันทึกไฟล์เหล่านี้เป็น PNG แบบพาเลตเช่นกัน ใช้หนึ่งไบต์ต่อพิกเซล แทนที่จะขยายเป็นภาพสีเต็ม ทำให้ PNG มีขนาดเล็กที่สุดเท่าที่ทำได้
แล้วบิตแมป 32 บิตล่ะ?
เมื่อ BMP 32 บิตระบุว่ามีช่องความโปร่งใสและเบราว์เซอร์ของคุณอ่านได้ PNG จะคงความโปร่งใสนั้นไว้ อย่างไรก็ตาม หลายโปรแกรมเขียนไบต์ที่สี่ไว้เป็นเพียงไบต์เติม ในกรณีนั้นบิตแมปจะเป็นภาพทึบธรรมดา
พื้นหลังสีแมเจนตา: เปลี่ยน #FF00FF ให้โปร่งใสจริง
ไฟล์ BMP จากเกม อีมูเลเตอร์ และแถบเครื่องมือของ Windows รุ่นเก่ามักมีพื้นหลังสีชมพูจัดจ้าน ซึ่งเป็นความตั้งใจ ในยุคที่รูปแบบไฟล์ที่รองรับความโปร่งใสยังไม่แพร่หลาย นักพัฒนาจะระบายส่วนที่ต้องการให้มองทะลุด้วยสีแมเจนตาล้วน ซึ่งเป็นสีที่แทบไม่เคยใช้ในงานภาพ แล้วสั่งให้โปรแกรมข้ามสีนั้นไป
คลิกเดียวได้ PNG โปร่งใส
ติ๊ก "ทำให้สีแมเจนตา (#FF00FF) โปร่งใส" แล้วทุกพิกเซลที่เป็นสีนั้นพอดีจะกลายเป็นโปร่งใสใน PNG รายการผลลัพธ์จะนับจำนวนพิกเซลที่ถูกเปลี่ยน คุณจึงเห็นได้ว่าได้ผลจริง
ต้องตรงกันพอดีเท่านั้น
ระบบจะแทนที่เฉพาะ #FF00FF ล้วนเท่านั้น เฉดที่เกือบเป็นแมเจนตา เช่น ขอบที่ผ่านการลบรอยหยัก จะคงไว้ตามเดิม ตัวเลือกนี้จึงไม่กัดกินเนื้องานภาพเลย
มีเกมบางเกมที่ใช้สีคีย์อื่น เช่น สีเขียวล้วนหรือสีดำ ตัวเลือกนี้รองรับสีแมเจนตาซึ่งเป็นสีที่นิยมที่สุดอย่างทิ้งห่าง ส่วนสีคีย์อื่นควรลบด้วยโปรแกรมแก้ไขภาพ
เปรียบเทียบ BMP กับ PNG แบบรวดเร็ว
| BMP | PNG | |
|---|---|---|
| การบีบอัด | ส่วนใหญ่ไม่มี | ไม่สูญเสียคุณภาพ (Deflate) |
| ขนาดภาพหน้าจอทั่วไป | หลายเมกะไบต์ | ไม่กี่ร้อยกิโลไบต์ |
| ความโปร่งใส | พบน้อย และรองรับไม่สม่ำเสมอ | ช่องอัลฟาเต็มรูปแบบ |
| เปิดในเบราว์เซอร์และแอป | ส่วนใหญ่เปิดได้ แต่เว็บไซต์ไม่ค่อยรับ | ได้ทุกที่ |
| เหมาะสำหรับ | โปรแกรมและอุปกรณ์แบบเรียบง่าย | ภาพหน้าจอ ไอคอน กราฟิก เว็บ |
เมื่อไรควรแปลง BMP เป็น PNG
PNG คือตัวแทนโดยธรรมชาติของ BMP เมื่อภาพมีขอบคม สีเรียบ หรือตัวอักษร
เหมาะกับ PNG
- ภาพหน้าจอและหน้าต่างแอปจากเครื่องมือ Windows รุ่นเก่า
- ไอคอน เคอร์เซอร์ และพิกเซลอาร์ต
- แผนภาพ แผนภูมิ และโลโก้
- สไปรต์ชีตและเท็กซ์เจอร์เกม โดยใช้ตัวเลือกสีแมเจนตาเมื่อจำเป็น
เมื่อ JPG ดีกว่า
ภาพถ่ายและภาพสแกนมีนอยส์ละเอียดที่การบีบอัดแบบไม่สูญเสียลดขนาดได้ไม่มาก สำหรับภาพเหล่านี้ แปลง BMP เป็น JPG จะได้ไฟล์ที่เล็กกว่าหลายเท่าโดยมองไม่เห็นความแตกต่าง
เก็บ BMP ไว้เมื่อมีเหตุผล
อุปกรณ์บางชนิด หน้าจอบูต และจอแสดงผลของไมโครคอนโทรลเลอร์รับเฉพาะไฟล์ BMP ให้เก็บต้นฉบับไว้ใช้กับอุปกรณ์เหล่านั้น แล้วใช้ PNG ในที่อื่นทั้งหมด
หลังจากแปลง BMP เป็น PNG แล้ว
หากต้องการให้ PNG เล็กลงอีก ให้ใช้ บีบอัด PNG สำหรับเว็บไซต์ แปลง PNG เป็น WebP ให้ไฟล์ที่เล็กยิ่งกว่าโดยความโปร่งใสยังอยู่ครบ และ ปรับขนาดรูปภาพ ช่วยกำหนดขนาดที่แน่นอน
สำหรับภาพถ่าย ให้ใช้ แปลง BMP เป็น JPG แทน ส่วนคู่รูปแบบอื่นทั้งหมดอยู่ใน ตัวแปลงรูปภาพ