กลับไปหน้าบทความ

อ่าน 2 นาที

โมเดลสี RGBA

RGBA ย่อมาจาก แดง เขียว น้ำเงิน อัลฟา แม้บางครั้งจะถูกอธิบายว่าเป็น ปริภูมิสี แต่จริงๆ แล้วมันคือ แบบจำลองสี RGB สามช่องสัญญาณที่เสริมด้วย ช่องสัญญาณอัลฟาช่อง ที่สี่...

โมเดลสี RGBA

( เรียนรู้วิธีและเวลาในการลบข้อความนี้ )
ตัวอย่างภาพ RGBA ที่ซ้อนทับบนพื้นหลังลายตารางหมากรุก ค่าอัลฟ่าเป็น 0% ที่ด้านบนและ 100% ที่ด้านล่าง

RGBAย่อมาจากแดง เขียว น้ำเงิน อัลฟาแม้บางครั้งจะถูกอธิบายว่าเป็นปริภูมิสี แต่จริงๆ แล้วมันคือ แบบจำลองสี RGBสามช่องสัญญาณที่เสริมด้วยช่องสัญญาณอัลฟาช่อง ที่สี่ อัลฟาบ่งบอกถึงความทึบของแต่ละพิกเซล และช่วยให้สามารถรวมภาพเข้าด้วยกันโดยใช้ การผสมภาพ แบบอัลฟา (alpha compositing ) โดยมี พื้นที่ โปร่งใสและการลดรอยหยัก (anti-aliasing)ที่ขอบของบริเวณทึบ แต่ละพิกเซลเป็น เวก เตอร์ 4 มิติ

คำศัพท์ดัง กล่าว ไม่ได้ระบุว่าใช้พื้นที่สี RGB แบบใด นอกจากนี้ยังไม่ได้ระบุว่าสีเหล่านั้นถูกคูณด้วยค่าอัลฟาหรือไม่ และหากถูกคูณด้วยค่าอัลฟา ก็ไม่ได้ระบุว่าใช้พื้นที่สีใดในการคูณ ดังนั้นจึงจำเป็นต้องมีข้อมูลมากกว่าแค่ "RGBA" เพื่อพิจารณาถึงวิธีการจัดการกับภาพ

ในบางบริบท คำย่อ "RGBA" หมายถึงรูปแบบการจัดเรียงหน่วยความจำเฉพาะ (เรียกว่าRGBA8888ด้านล่าง) โดยมีคำอื่น เช่น "BGRA" ใช้สำหรับทางเลือกอื่น ในบริบทอื่นๆ "RGBA" หมายถึงรูปแบบการจัดเรียงใดๆ ก็ได้

การเป็นตัวแทน

ในกราฟิกคอมพิวเตอร์ พิกเซลที่เข้ารหัสข้อมูลพื้นที่สี RGBA จะต้องถูกจัดเก็บไว้ในหน่วยความจำคอมพิวเตอร์ (หรือในไฟล์บนดิสก์) ในกรณีส่วนใหญ่จะใช้หน่วยความจำขนาดเท่ากันสี่ส่วนที่อยู่ติดกัน โดยแต่ละส่วนแทนช่องสีหนึ่งช่อง และค่า 0 ในช่องสีหนึ่งช่องจะบ่งบอกถึงสีดำหรือค่าอัลฟาโปร่งใส ในขณะที่ค่า 1 ทั้งหมดจะบ่งบอกถึงสีขาวหรือค่าอัลฟาทึบแสงอย่างสมบูรณ์ รูปแบบที่พบได้บ่อยที่สุดคือการจัดเก็บ 8 บิต (หนึ่งไบต์ ) สำหรับแต่ละช่องสี ซึ่งเท่ากับ 32 บิตสำหรับแต่ละพิกเซล

ลำดับของไบต์ทั้งสี่นี้ในหน่วยความจำอาจแตกต่างกัน ซึ่งอาจนำไปสู่ความสับสนเมื่อมีการแลกเปลี่ยนข้อมูลภาพ การเข้ารหัสเหล่านี้มักจะแสดงด้วยตัวอักษรทั้งสี่ตัวในลำดับใดลำดับหนึ่ง (ที่พบมากที่สุดคือ RGBA) การตีความตัวย่อสี่ตัวอักษรนี้ยังไม่เป็นที่ยอมรับอย่างแพร่หลาย มีสองวิธีทั่วไปในการทำความเข้าใจตัวย่อ "RGBA":

  • ในระบบการเรียงลำดับไบต์ "RGBA" หมายถึง ไบต์ R ตามด้วยไบต์ G ตามด้วยไบต์ B และตามด้วยไบต์ A ระบบนี้มักใช้ในการอธิบายรูปแบบไฟล์หรือโปรโตคอลเครือข่าย ซึ่งทั้งสองอย่างนี้ใช้การเรียงลำดับไบต์เป็นหลัก
  • ในระบบการเรียงลำดับคำ "RGBA" หมายถึงคำ 32 บิตที่สมบูรณ์ โดยที่ R มีความสำคัญมากกว่า G ซึ่งมีความสำคัญมากกว่า B ซึ่งมีความสำคัญมากกว่า A

ใน ระบบ บิ๊กเอนเดียนรูปแบบทั้งสองนั้นเทียบเท่ากัน แต่ ในระบบ ลิตเติลเอนเดียนรูปแบบทั้งสองจะกลับด้านกัน ดังนั้น เพื่อให้เกิดความชัดเจน จึงจำเป็นต้องระบุว่าใช้ลำดับใดเมื่อกล่าวถึงการเข้ารหัส บทความนี้จะใช้รูปแบบที่เป็นที่นิยม คือ การเพิ่มคำต่อท้าย "8888" เพื่อระบุว่าเป็นหน่วย 8 บิต 4 หน่วย หรือ "32" หากกำลังพูดถึงหน่วย 32 บิต 1 หน่วย

ตัวแปลงการแสดงผล RGBA
ลิตเติ้ลเอนเดียนบิ๊กเอนเดียน
RGBA8888 ABGR32 RGBA32
ARGB32 BGRA8888 ARGB8888
RGBA32 ABGR8888 RGBA8888

RGBA8888

ในOpenGLและPortable Network Graphics (PNG) จะใช้ลำดับไบต์ RGBA โดยที่สีจะถูกจัดเก็บในหน่วยความจำโดยที่ R อยู่ที่แอดเดรสต่ำสุด ตามด้วย G ตามด้วย B และสุดท้ายคือ A บนสถาปัตยกรรมแบบ little endian จะเทียบเท่ากับ ABGR32 [ 1 ]

ในระบบหลายๆ ระบบ เมื่อมีจำนวนบิตมากกว่า 8 บิตต่อช่องสัญญาณ (เช่น 16 บิต หรือเลขทศนิยม) ช่องสัญญาณเหล่านั้นจะถูกจัดเก็บในลำดับ RGBA แม้ว่าช่องสัญญาณ 8 บิตจะถูกจัดเก็บในลำดับอื่นก็ตาม

ARGB32

ช่องสัญญาณต่างๆ ถูกจัดเรียงในหน่วยความจำในลักษณะที่ว่า จำนวนเต็ม 32 บิตที่ไม่มีเครื่องหมายเพียงตัวเดียว จะมีค่าตัวอย่างเสียงอัลฟ่าอยู่ใน 8 บิตบนสุด ตามด้วยค่าตัวอย่างเสียงสีแดง สีเขียว และสุดท้ายคือค่าตัวอย่างเสียงสีน้ำเงินใน 8 บิตล่างสุด:

ตัวอย่างเค้าโครงในพิกเซล 32 บิตต่อพิกเซลทั่วไป
ตัวอย่างเค้าโครงในพิกเซล 32 บิตต่อพิกเซลทั่วไป

ค่า ARGB โดยทั่วไปจะแสดงด้วย ตัวเลข ฐานสิบหก 8 หลัก โดยแต่ละคู่ของตัวเลขฐานสิบหกจะแสดงค่าของช่อง Alpha, Red, Green และ Blue ตามลำดับ ตัวอย่างเช่น80FFFF00แสดงถึงสีเหลืองทึบแสง (ไม่ผ่านการคูณล่วงหน้า) 50.2% 80ค่าฐานสิบหก ซึ่งคือ 128 ในระบบเลขฐานสิบ แสดงถึงค่า Alpha 50.2% เนื่องจาก 128 มีค่าประมาณ 50.2% ของค่าสูงสุด 255 (FF hex) เพื่อถอดรหัสค่าต่อไป80FFFF00ตัวเลขแรกFFแสดงถึงค่าสูงสุดที่สีแดงสามารถมีได้ ตัวเลขที่สองFFเหมือนกับตัวเลขก่อนหน้าแต่สำหรับสีเขียว และตัวเลขสุดท้าย00แสดงถึงค่าต่ำสุดที่สีน้ำเงินสามารถมีได้ (ในทางปฏิบัติคือไม่มีสีน้ำเงิน) ดังนั้น สีแดง + สีเขียวจะได้สีเหลือง ในกรณีที่ไม่ได้ใช้ Alpha ค่านี้สามารถย่อเหลือ 6 หลักได้RRGGBBนี่คือเหตุผลที่เลือกวาง Alpha ไว้ในบิตบนสุด ขึ้นอยู่กับบริบท อาจใส่ 0xเครื่องหมาย a หรือเครื่องหมาย # [ 2 ]ไว้หน้าตัวเลขฐานสิบหก

รูปแบบนี้ได้รับความนิยมเมื่อมีการนำสี 24 บิต (และ RGBA 32 บิต) มาใช้ในคอมพิวเตอร์ส่วนบุคคล ในเวลานั้น การประมวลผลหน่วยประมวลผล 32 บิตเพียงหน่วยเดียวทำได้เร็วกว่าและง่ายกว่าการประมวลผลหน่วยประมวลผล 8 บิตสี่หน่วยมาก

ในระบบที่มีไบต์แบบ little-endian จะเทียบเท่ากับลำดับไบต์ BGRA ส่วนในระบบที่มีไบต์แบบ big-endian จะเทียบเท่ากับลำดับไบต์ ARGB

RGBA32

ในซอฟต์แวร์บางตัวที่พัฒนามาจากเครื่องที่มีสถาปัตยกรรม big-endian เช่นSilicon Graphicsสีจะถูกจัดเก็บในรูปแบบ 32 บิต คล้ายกับ ARGB32 แต่ค่าอัลฟ่าจะอยู่ใน 8 บิต ล่างแทนที่จะเป็น 8 บิตบน ตัวอย่างเช่น808000FFสีแดงและสีเขียว: 50.2%, สีน้ำเงิน: 0% และค่าอัลฟ่า: 100% จะได้สีน้ำตาล นี่คือสิ่งที่คุณจะได้หากข้อมูล RGBA8888 ถูกอ่านเป็นคำในเครื่องเหล่านี้ มีการใช้งานในPortable Arbitrary MapและFLTKแต่โดยทั่วไปแล้วพบได้น้อย

รูปแบบพิกเซล RGBA

ในเครื่องที่มีสถาปัตยกรรมแบบ little-endian ข้อมูลไบต์จะถูกจัดเก็บในหน่วยความจำตามลำดับ ABGR

ดูเพิ่มเติม

  • ความโปร่งใสแบบอัลฟ่าตามข้อกำหนด PNG ของ W3C
  • สี RGBA – หน้าแสดงตัวอย่างพร้อมข้อมูลการใช้งานบน CSS3.info
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=RGBA_color_model&oldid=1236244832 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ โมเดลสี RGBA

RGBA ย่อมาจาก แดง เขียว น้ำเงิน อัลฟา แม้บางครั้งจะถูกอธิบายว่าเป็น ปริภูมิสี แต่จริงๆ แล้วมันคือ แบบจำลองสี RGB สามช่องสัญญาณที่เสริมด้วย ช่องสัญญาณอัลฟาช่อง ที่สี่...

การเป็นตัวแทน

ในกราฟิกคอมพิวเตอร์ พิกเซลที่เข้ารหัสข้อมูลพื้นที่สี RGBA จะต้องถูกจัดเก็บไว้ใน หน่วยความจำคอมพิวเตอร์ (หรือในไฟล์บนดิสก์) ในกรณีส่วนใหญ่จะใช้หน่วยความจำขนาดเท่ากันสี่ส่วนที่อยู่ติดกัน โดยแต่ละส่วนแทนช่องสีหนึ่งช่อง และค่า 0...

RGBA8888

ใน OpenGL และ Portable Network Graphics (PNG) จะใช้ลำดับไบต์ RGBA โดยที่สีจะถูกจัดเก็บในหน่วยความจำโดยที่ R อยู่ที่แอดเดรสต่ำสุด ตามด้วย G ตามด้วย B และสุดท้ายคือ A บนสถาปัตยกรรมแบบ little endian จะเทียบเท่ากับ ABGR32 [ 1 ]

ARGB32

ช่องสัญญาณต่างๆ ถูกจัดเรียงในหน่วยความจำในลักษณะที่ว่า จำนวนเต็ม 32 บิตที่ไม่มีเครื่องหมายเพียงตัวเดียว จะมีค่าตัวอย่างเสียงอัลฟ่าอยู่ใน 8 บิตบนสุด ตามด้วยค่าตัวอย่างเสียงสีแดง สีเขียว และสุดท้ายคือค่าตัวอย่างเสียงสีน้ำเงินใน 8 บิตล่างสุด: