BITMAPINFO โครงสร้าง

โครงสร้างของ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)

Index