نموذج الألوان RGBA
تحتوي هذه المقالة على العديد من المشكلات. يُرجى المساعدة في تحسينها أو مناقشة هذه المشكلات على صفحة المناقشة . ( تعرف على كيفية ومتى يمكنك إزالة هذه الرسائل )
|

RGBA تعني الأحمر والأخضر والأزرق ألفا . وفي حين يوصف أحيانًا بأنه مساحة لونية ، فهو في الواقع نموذج لوني RGB ثلاثي القنوات مكمل بقناة ألفا رابعة . تشير ألفا إلى مدى تعتيم كل بكسل وتسمح بدمج صورة فوق صور أخرى باستخدام تركيب ألفا ، مع مناطق شفافة وتنعيم حواف المناطق المعتمة. كل بكسل هو متجه رباعي الأبعاد .
لا يحدد المصطلح مساحة ألوان 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" للإشارة إلى ما إذا كان سيتم مناقشة 4 وحدات 8 بت أو "32" إذا كانت وحدة 32 بت واحدة.
| ليتل إنديان | الطرف الكبير | |
|---|---|---|
| ار جي بي ايه 8888 | أيه بي جي آر 32 | ار جي بي ايه 32 |
| أي آر جي بي 32 | بي جي آر إيه 8888 | أي آر جي بي 8888 |
| ار جي بي ايه 32 | أي بي جي آر 8888 | ار جي بي ايه 8888 |
ار جي بي ايه 8888
في OpenGL و Portable Network Graphics (PNG)، يتم استخدام ترتيب بايتات RGBA، حيث يتم تخزين الألوان في الذاكرة بحيث يكون R في أدنى عنوان، وG بعده، وB بعده، وA في النهاية. في بنية little endian، يكون هذا معادلاً لـ ABGR32. [1]
في العديد من الأنظمة عندما يكون هناك أكثر من 8 بتات لكل قناة (مثل 16 بت أو فاصلة عائمة)، يتم تخزين القنوات بترتيب RGBA، حتى لو تم تخزين قنوات 8 بتات بترتيب آخر.
أي آر جي بي 32
يتم ترتيب القنوات في الذاكرة بطريقة تجعل عددًا صحيحًا غير موقّع مكونًا من 32 بتًا يحتوي على عينة ألفا في أعلى 8 بتات، تليها العينة الحمراء، والعينة الخضراء، وأخيرًا العينة الزرقاء في أدنى 8 بتات:

يتم التعبير عن قيم ARGB عادةً باستخدام 8 أرقام سداسية عشرية ، حيث يمثل كل زوج من الأرقام السداسية عشرية قيم قناة Alpha وRed وGreen وBlue على التوالي. على سبيل المثال، 80FFFF00يمثل 50.2% من اللون الأصفر المعتم (غير المضاعف مسبقًا). 80تمثل القيمة السداسية، التي تبلغ 128 في النظام العشري، قيمة ألفا بنسبة 50.2% لأن 128 تعادل تقريبًا 50.2% من القيمة القصوى 255 (FF hex)؛ لمواصلة فك تشفير القيمة 80FFFF00، تمثل القيمة الأولى FFأقصى قيمة يمكن أن يمتلكها اللون الأحمر؛ والثانية FFتشبه السابقة ولكن بالنسبة للأخضر؛ 00وتمثل الأخيرة الحد الأدنى للقيمة التي يمكن أن يمتلكها اللون الأزرق (بشكل فعال - لا يوجد أزرق). وبالتالي، ينتج عن الأحمر + الأخضر اللون الأصفر. في الحالات التي لا يتم فيها استخدام ألفا، يمكن اختصار ذلك إلى 6 أرقام RRGGBB، ولهذا السبب تم اختيار وضع ألفا في البتات العلوية. اعتمادًا على السياق، يتم وضع 0xعلامة أو رقم (#) [2] قبل الأرقام السداسية عشرية.
أصبح هذا التصميم شائعًا عندما تم تقديم الألوان ذات 24 بت (و32 بت RGBA) على أجهزة الكمبيوتر الشخصية. في ذلك الوقت، كان من الأسهل والأسرع بكثير بالنسبة للبرامج التعامل مع وحدة واحدة ذات 32 بت مقارنة بأربع وحدات ذات 8 بت.
في الأنظمة ذات النهاية الصغيرة، يعادل هذا ترتيب بايتات BGRA. وفي الأنظمة ذات النهاية الكبيرة، يعادل هذا ترتيب بايتات ARGB.
ار جي بي ايه 32
This section's factual accuracy is disputed. (December 2015) |
في بعض البرامج التي نشأت على آلات ذات نهاية كبيرة مثل Silicon Graphics ، تم تخزين الألوان في 32 بت على غرار ARGB32، ولكن مع وجود ألفا في 8 بتات السفلية بدلاً من البتات العلوية. على سبيل المثال، 808000FFسيكون الأحمر والأخضر: 50.2٪، والأزرق: 0٪ وألفا: 100٪، والبني. هذا ما ستحصل عليه إذا تمت قراءة بيانات RGBA8888 ككلمات على هذه الآلات. يتم استخدامه في Portable Arbitrary Map وفي FLTK ، ولكنه نادر بشكل عام.
يتم تخزين البايتات في الذاكرة على جهاز little-endian بالترتيب ABGR.
انظر أيضا
مراجع
- ^ "مواصفات الرسومات الشبكية المحمولة (PNG) (الطبعة الثانية)". www.w3.org . تم الاسترجاع في 25 نوفمبر 2021 .
- ^ مرجع بنية ألوان XAML في Microsoft MSDN (XAML/WPF/Silverlight)، بما في
#aarrggbbذلكsc# scA,scR,scG,scB
روابط خارجية
- شفافية ألفا على مواصفات W3C PNG
- ألوان RGBA – صفحة المعاينة مع معلومات التنفيذ على CSS3.info
