รูปแบบสีที่ใช้กล่องโต้ตอบสี

ส่วนขยายสีที่กำหนดเองของกล่องโต้ตอบสีช่วยให้ผู้ใช้ระบุสีโดยใช้ค่า RGB หรือ HSL อย่างไรก็ตามCHOOSECOLORโครงสร้างใช้เฉพาะค่า RGB เพื่อรายงานสีสร้าง หรือเลือก โดยผู้ใช้.

รูปแบบสีแบบ RGB

แบบ RGB ถูกใช้เพื่อกำหนดสีสำหรับจอภาพและอุปกรณ์อื่น ๆ ที่ฉาย ช่วงของค่าสีแดง สีเขียว และสีน้ำเงินที่ถูกต้องจาก 0 ถึง 255 โดยระบุความเข้มน้อยที่สุดและเพื่อแสดงความเข้มสูงสุด 255 0 ภาพประกอบต่อไปนี้แสดงวิธีสีแดง สีเขียว และสีน้ำเงินสามารถถูกรวมในการผลิตสีเพิ่มเติมที่สี่ (สำหรับการแสดงผลอุปกรณ์ สีดำผลเมื่อค่าสีแดง สีเขียว และสีน้ำเงินถูกตั้งค่าเป็น 0 เทคโนโลยีการแสดงผล สีดำคือการขาดงานของสีทั้งหมด)

ต่อไปนี้เป็นแปดสีและค่า RGB เชื่อมโยง.

สี ค่า RGB
สีแดง 255, 0, 0
สีเขียว 0, 255, 0
น้ำเงิน 0, 0, 255
ฟ้า 0, 255, 255
ชมพูแกมม่วง 255, 0, 255
สีเหลือง 255, 255, 0
สีขาว 255, 255, 255
สีดำ 0, 0, 0

ระบบการจัดเก็บภายในสีเป็นค่า RGB 32 บิตที่มีรูปแบบเลขฐานสิบหกต่อไปนี้:

0x00bbggrr 

 

ต่ำลำดับไบต์ที่ประกอบด้วยค่าสำหรับความเข้มสัมพัทธ์ของสีแดง สองของไบต์ที่ประกอบด้วยค่าสำหรับสีเขียว และสามไบต์ที่ประกอบด้วยค่าสำหรับสีฟ้า ไบต์สูงใบสั่งต้องเป็นศูนย์.

คุณสามารถใช้การ RGBแมโครเพื่อรับค่า RGB ที่ยึด intensities ที่ระบุสำหรับคอมโพเนนต์สีแดง สีเขียว และสีน้ำเงิน ใช้ GetRValue, GetBValueและ GetGValueแมโครเพื่อแยกแต่ละสีจาก RGB มีสีค่า.

HSL สี Model

กล่องโต้ตอบสีให้ตัวควบคุมสำหรับการระบุค่า HSL ภาพประกอบต่อไปนี้แสดงตัวควบคุมสเปกตรัมสีและควบคุมความสว่างภาพนิ่งที่ปรากฏในกล่องโต้ตอบสี ภาพประกอบแสดงช่วงของค่าที่ผู้ใช้สามารถระบุให้กับตัวควบคุมเหล่านี้ยัง.

ในกล่องโต้ตอบสีความเข้มและความสว่างค่าต้องอยู่ในช่วง 0 ถึง 240 และค่าสีสันต้องเป็นในช่วง 0 ถึง 239.

การแปลงค่า HSL ค่า RGB

กระบวนกล่องโต้ตอบมีอยู่ใน COMDLG32DLL สำหรับกล่องโต้ตอบสีประกอบด้วยรหัสที่แปลงค่า HSL ค่า RGB ที่สอดคล้องกัน ต่อไปนี้มีหลายสีและค่าของ HSL และ RGB ที่เกี่ยวข้อง.

สี HSL ค่า ค่า RGB
สีแดง (0, 240, 120) (255, 0, 0)
สีเหลือง (40, 240, 120) (255, 255, 0)
สีเขียว (80, 240, 120) (0, 255, 0)
ฟ้า (120, 240, 120) (0, 255, 255)
น้ำเงิน (160, 240, 120) (0, 0, 255)
ชมพูแกมม่วง (200, 240, 120) (255, 0, 255)
สีขาว (0, 0, 240) (255, 255, 255)
สีดำ (0, 0, 0) (0, 0, 0)