מודלים של צבע בשימוש על-ידי תיבת הדו-שיח צבע

הרחבת צבעים מותאמים אישית של תיבת הדו-שיח צבע מאפשר למשתמש לציין צבע בעזרת ערכי RGB או HSL. עם זאת, מבנה CHOOSECOLOR משתמש רק ערכי RGB כדי לדווח על צבעים שנוצרו או שנבחר על-ידי המשתמש.

ייצוג צבע

מודל RGB משמשת לציון צבעים עבור הצגת והתקנים אחרים הפולטות אור. טווח ערכים חוקיים של אדום, ירוק וכחול מ- 0 עד 255, עם 0 שמציינת את עוצמת המינימלי ואת 255 המציין העוצמה המקסימלית. האיור הבא מציג כיצד ניתן לשלב את צבעי יסוד אדום, ירוק וכחול להפקת ארבעה צבעים נוספים. (עבור התקני תצוגה, צבע שחור תוצאות כאשר ערכי האדום, הירוק והכחול מוגדרות ל- 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 מבוסס על מימדי המורכב ממידות חוזק שצוין עבור רכיבי האדום, הירוק והכחול. השתמש GetRValue, GetBValue, ו GetGValue פקודות מאקרו כדי לחלץ צבעים בודדים מ- RGB של ערך צבע.

HSL מודל צבע

תיבת הדו-שיח צבע מספקת פקדים עבור ציון HSL ערכים. האיור הבא מציג את צבע ספקטרום פקד ופקד על זוהר שקופיות המופיעות בתיבת הדו-שיח צבע . האיור מציג גם את טווחי ערכים שהמשתמש יכול לציין עם פקדים אלה.

בתיבת הדו-שיח צבע , רוויה וערכי זוהר חייב להיות בטווח של 0 עד 240, ועל ערך הגוון להיות בטווח 0 עד 239.

המרת ערכים HSL לערכי RGB

הפרוצדורה תיבת הדו-שיח המופיעות COMDLG32.קובץ DLL עבור תיבת הדו-שיח צבע מכיל קוד אשר ממיר ערכים 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)