สี 48 บิต?


4

สิ่งที่ค่อนข้างบ่อยโดยเฉพาะใน X11 ที่เกี่ยวข้อง (ทรัพยากร X, Roxterm ธีม, ฯลฯ ) ผมเห็นสีที่ระบุเป็นตัวเลข 48 บิต: #2e2e34343636, #cccc00000000แทนปกติ 24 บิตและ#2e3436 #cc0000บิตพิเศษที่ใช้ทำมีอะไรบ้าง?

คำตอบ:


2

ฉันพบคำตอบในเอกสารประกอบ Xlib ภายใต้ "Color strings" ดูเหมือนว่า Xlib ใช้ค่าสี 16 บิตสำหรับสีจริง:

ข้อกำหนดสตริงอุปกรณ์ RGB

[... ] สนับสนุนไวยากรณ์เก่ากว่าสำหรับอุปกรณ์ RGB แต่ไม่สนับสนุนให้ใช้อย่างต่อเนื่อง ไวยากรณ์เป็นอักขระเครื่องหมายเริ่มต้นที่คมชัดตามด้วยข้อกำหนดคุณสมบัติตัวเลขในรูปแบบใดรูปแบบหนึ่งต่อไปนี้:

#RGB          (4 bits each)
#RRGGBB       (8 bits each)
#RRRGGGBBB    (12 bits each)
#RRRRGGGGBBBB (16 bits each)

R, G และ B แสดงเลขฐานสิบหกหลักเดียว เมื่อระบุน้อยกว่า 16 บิตแต่ละรายการจะแสดงบิตที่สำคัญที่สุดของค่า (ต่างจากไวยากรณ์“ rgb:” ซึ่งมีการปรับขนาดค่า) ตัวอย่างเช่นสตริง“ #3a7” เหมือนกับ“ #3000a0007000


1

ฉันไม่สามารถพูดคุยกับการใช้งาน X11 ของพวกเขาได้ แต่โดยทั่วไปแล้ว: ค่าสีเพิ่มเติมที่ไม่สามารถสร้างได้ที่ความลึกบิตและช่องอัลฟาที่น้อยกว่า


1

จากตัวอย่างที่คุณให้พวกเขาไม่ได้ถูกใช้เลยเนื่องจากค่า 24 บิตนั้นถูกทำซ้ำเพียงเล็กน้อย (เช่นการฝึกใช้อักขระ hex เพียง 3 ตัวเพื่อแสดงสี "websafe" ดังนั้น # c00 จึงมีความหมายเหมือนกับ # cc0000 หรือ 204 , 0,0, ขยายเป็น # cccc00000000)

โดยปกติแล้วค่า 32 บิตจะใช้ไบต์สุดท้ายสำหรับช่องอัลฟา (โปร่งใส) ฉันเดาว่าเป็นไปได้ว่าค่า 48 บิตกำลังใช้สี 24 บิตพร้อมอัลฟาอิสระต่อสี แต่ตัวอย่างที่คุณให้ไม่สนับสนุนสิ่งนี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.