โครงสร้างของBITMAPINFOมีแบบฟอร์มต่อไปนี้:
typedef struct tagBITMAPINFO {
nbsp BITMAPINFOHEADER bmiHeader
RGBQUAD bmiColors [1];
} BITMAPINFO(&N)
BITMAPINFOโครงสร้างกำหนดขนาดและรายละเอียดของสีสำหรับบิตแมปแบบไม่ขึ้นกับอุปกรณ์ Windows (DIB)?
สมาชิก
bmiHeader
ระบุโครงสร้างแบบBITMAPINFOHEADERซึ่งประกอบด้วยข้อมูลเกี่ยวกับขนาดและรูปแบบสีของบิตแมปแบบไม่ขึ้นกับอุปกรณ์?
bmiColors
ระบุถึงอาร์เรย์ของชนิดข้อมูลที่RGBQUADหรือDWORDที่กำหนดสีในบิตแมป?
ความคิดเห็น
บิตแมปแบบไม่ขึ้นกับอุปกรณ์ประกอบด้วยสองส่วนที่แตกต่าง: โครงสร้างของBITMAPINFOอธิบายขนาดและสีของบิตแมป และอาร์เรย์ของไบต์ที่กำหนดพิกเซลของบิตแมป บรรจุในหน่วยบิตในอาร์เรย์ร่วมกัน แต่บรรทัดแต่ละบรรทัดของการสแกนที่ต้องนวมกับศูนย์จะสิ้นสุดในขอบเขตยาวนาน ถ้าความสูงเป็นบวก ต้นกำเนิดของบิตแมปอยู่มุมล่างซ้าย ถ้าความสูงเป็นค่าลบ ต้นกำเนิดอยู่มุมบนซ้าย?
สมาชิกbiBitCountของโครงสร้างBITMAPINFOHEADERกำหนดจำนวนบิตที่กำหนดแต่ละพิกเซลและจำนวนสูงสุดของสีในบิตแมป สมาชิกนี้สามารถเป็นหนึ่งในค่าต่อไปนี้:
สมาชิกbiClrUsedของโครงสร้างBITMAPINFOHEADERระบุหมายเลขของดัชนีสีในตารางสีที่ใช้จริง โดยบิตแมป ถ้าสมาชิกbiClrUsedมีค่าเป็นศูนย์ บิตแมปใช้จำนวนสูงสุดของสีที่สอดคล้องกับค่าของสมาชิกbiBitCount?
สีในตารางbmiColorsควรปรากฏขึ้นตามลำดับความสำคัญ อีกวิธีหนึ่งคือ สำหรับฟังก์ชันที่ใช้ DIBs สมาชิกbmiColorsสามารถเป็นอาร์เรย์ของ 16 บิตจำนวนเต็มไม่มีลายเซ็นที่ระบุดัชนีเป็นรับรู้ในขณะนี้ทางตรรกะจาน แทนค่า RGB ชัดเจน ในกรณีนี้ โปรแกรมประยุกต์ที่ใช้บิตแมปที่ต้องเรียกใช้ฟังก์ชัน Windows DIB ( CreateDIBitmap, CreateDIBPatternBrushและ CreateDIBSection) ด้วยพารามิเตอร์iUsageตั้งค่าDIB_PAL_COLORS?
ถ้าบิตแมป บิตแมปรวบรวม (นั่นคือ เป็นรูปบิตแมปที่อาร์ที่บิตแมปเรย์ทันทีตามหัวข้อที่BITMAPINFOและที่ถูกอ้างอิง โดยชี้ตัวเดียว), สมาชิกbiClrUsedต้องถูกตั้งค่าเป็นจำนวนคู่เมื่อใช้โหมดDIB_PAL_COLORSดังนั้นอาร์เรย์ DIB บิตแมปเริ่มต้นบนขอบDWORD?
หมายเหตุnbsp สมาชิกbmiColorsไม่ควรประกอบด้วยดัชนีสีถ้าบิตแมปจะถูกเก็บไว้ในแฟ้ม หรือถ่ายโอนไปยังโปรแกรมประยุกต์อื่น นอกจากโปรแกรมประยุกต์ที่มีเอกสิทธิ์เฉพาะบุคคลในการใช้และการควบคุมของบิตแมป บิตแมปสีตารางควรประกอบด้วยค่า RGB อย่างชัดเจน(&N)?
ดูเพิ่มเติมnbspCBrush::CreateDIBPatternBrush(&N)