مدل رنگی آر جی بی ای

در مدل آر جی بی ای (RGBA) تمام رنگ‌ها از ترکیب سه رنگ و آلفا تشکیل می‌شود.
این سه رنگ عبارت هستند از قرمز (R)، سبز (G)، آبی (B) و همچنین آلفا (A) که شدت سیری (یا پررنگی) را نشان می دهد.
آر جی بی ای گاهی به عنوان فضای رنگی توصیف می شود، در حالی که مدل رنگی آر جی بی است که چهار کانال دارد و شامل سیری است.
کانال سیری مشخص می کند که هر پیکسل در تصویر چقدر سیر یا نیمه سیر است و با استفاده از این مقدار می توان تصاویر را ترکیب کرد.
در این روش ترکیب سیری، مناطق سیر و کناره های مناطق نیمه سیر با ضدپلگی برای ترکیب تصویر استفاده می شوند.
این عبارت تعریفی از فضای رنگی استفاده شده RGB را مشخص نمی کند. همچنین مشخص نمی کند که آیا رنگ ها توسط مقدار آلفا از قبل ضرب شده اند یا نه. همچنین اگر ضرب شده باشند، فضای رنگی که این پیش ضرب داخل آن انجام شده است، مشخص نیست. پس برای پردازش تصویر اطلاعات "RGBA" کافی نیست و به اطلاعات بیشتری نیاز خواهیم داشت.
در برخی موارد عبارت "RGBA" به یک طرح حافظه خاص اشاره دارد (که RGBA8888 نامیده می‌شود) و در مواقعی به هر طرح حافظه ای اشاره دارد. در برخی موارد دیگر ممکن است از "BGRA" به عنوان جایگزینی برای "RGBA" استفاده شود.

تصویر
این عکس نمونه ای از آر جی بی ای ای می باشد که روی پس زمینه شطرنجی نشان داده شده است. سیری یا آلفا در بالای تصویر 0 درصد و در پایین تصویر 100 درصد می باشد.

نمایش ویرایش

در حوزه گرافیک کامپیوتری اطلاعات رنگ RGBA پیکسل ها باید در حافظه رایانه (یا در فایل‌های روی دیسک) ذخیره شوند. در این روش اکثر اوقات از چهار بخش حافظه مجاور و برابر به صورتی که یکی برای هر کانال باشد، استفاده می شود. در یک کانال، صفر به معنای رنگ سیاه یا سیری درجه بالا است.
اگر تمام بیت ها یک باشد، به معنای رنگ سفید یا مات و سیری درجه پایین است. بیشترین فرمت پرکاربرد، استفاده از 8 بیت (یک بایت ) برای هر کانال است که هر پیکسل 32 بیت را اشغال می کند.
متفاوت بودن ترتیب این چهار بایت در حافظه ممکن است باعث ابهام در هنگام تبادل داده های تصویری شود. این رمزگذاری ها معمولا با استفاده از چهار حرف، به ترتیبی مشخص، نشان داده می شود (مثلاً RGBA و ARGB و غیره ). تفسیر این چهار حرف مشخص نیست و به خوبی تعریف نشده است. دو روش معمول برای فهمیدن عبارتی مانند "RGBA" وجود دارد:

  • در سیستم ترتیب-بایت، "RGBA" به معنی این است که یک بایت به رنگ قرمز (R)، بعد از آن یک بایت به رنگ سبز (G)، یک بایت به رنگ آبی (B)، و یک بایت به آلفا (A) اختصاص دارد. این سیستم معمولاً برای توصیف فرمت های فایل یا پروتکل های شبکه استفاده می شود که هر دوی آنها به صورت بایتی هستند.
  • در سیستم ترتیب-کلمه، "RGBA" به معنای نمایش یک کلمه 32 بیتی می باشد که R اهمیت بیشتری نسبت به G دارد، که خود G نیز مهم تر از B است، که B از A با اهمیت تر است.


در یک سیستم بزرگ-اندین ، این دو روش معادل هستند. اما در سیستم کوچک-اندین دو روش معکوس یکدیگر هستند. بنابراین برای جلوگیری از ابهام باید در هنگام ارجاع به روش کدگذاری، ترتیب استفاده شده را ذکر کنیم. یک روش شناخته شده برای نشان دادن اینکه آیا 4 واحد 8 بیتی یا یک واحد 32 بیتی مورد استفاده قرار گرفته شده است این می باشد که پسوند "8888" یا "32" را اضافه کنیم.
با استفاده از این روش مشخص می شود که کدام ترتیب استفاده شده است و احتمال ابهام و خطا در تفسیر کم می شود.

آر جی بی ای 8888 ویرایش

در اوپن جی ال و گرافیک قابل حمل در شبکه‌ها (PNG)، از ترتیب بایت RGBA استفاده می‌شود که رنگ ها در حافظه به صورتی ذخیره می شوند که R در کم اهمیت ترین آدرس، G بعد از آن، B بعد از آن، و A بعد از آنها است. در معماری اندین-کوچک این معادل ABGR32 است[۱]. در بسیاری از سیستم‌ها هنگامی که بیشتر از 8 بیت در هر کانال (مانند 16 بیت یا اعشاری) وجود دارد (حتی اگر کانال‌های 8 بیتی به ترتیب دیگری ذخیره شوند) این کانال‌ها به ترتیب RGBA ذخیره می‌شوند.

ای آر جی بی 32 ویرایش

کانال ها به گونه ای در حافظه ترتیب داده شده اند که یک عدد صحیح بدون علامت 32 بیتی دارند به طوری که نمونه ی آلفا در 8 بیت بالاتر قرار دارد، بعد از آن نمونه قرمز، نمونه سبز و در نهایت نمونه آبی در پایین ترین 8 بیت قرار دارد:

 

مقادیر ARGB معمولاً با استفاده از 8 رقم هگزادسیمال بیان می شوند، به این صورت که هر دو رقم هگزادسیمال، مقادیر کانال های آلفا، قرمز، سبز و آبی را نشان می دهد.

به عنوان مثال، 80FFFF00 به معنای زرد با سیری 50.2٪ (غیر ضرب شده) است. مقدار هگزیمال 80 که معادل 128 در ده دهی است، مقدار سیری 50.2٪ را نشان می دهد زیرا 128 تقریباً 50.2٪ از حداکثر مقدار 255 است (FF هگزادسیمال).

برای ادامه تفسیر مقدار 80FFFF00 ، اولین FF نشان دهنده بیشینه مقدار قرمز است. دومین FF بیشینه مقدار سبز است. 00 نهایی نشان‌دهنده حداقل مقداری است که آبی می‌تواند داشته باشد (عملاً بدون آبی است). بنابراین اضافه کردن رنگ قرمز و رنگ سبز به رنگ زرد منجر می شود.

در مواردی که آلفا استفاده نمی شود، می توان آن را به صورت 6 رقم (RRGGBB) نوشت. به همین دلیل آلفا در بیت های بالا قرار گرفته است. در برخی موارد، یک علامت 0x یا یک (#) [۲] قبل از ارقام هگزادسیمال قرار داده می شود.
این طرح به دلیلی محبوب شد که رنگ 24 بیتی (و 32 بیتی RGBA) در کامپیوتر های شخصی معرفی شد. در آن زمان برنامه ها به راحتی و با سرعت بیشتری با یک واحد 32 بیتی نسبت به 4 واحد 8 بیتی کار می کردند.
در سیستم های کوچک-اندین، این معادل ترتیب بایت BGRA می باشد و در سیستم‌های بزرگ-اندین، این معادل ترتیب بایت ARGB می باشد.

آر جی بی ای 32 ویرایش

در برخی نرم‌افزارهایی که در ماشین های بزرگ اندین مثل سیلیکون گرافیکس ایجاد شده اند، رنگ‌ها با ۳۲ بیت مشابه ARGB32 ذخیره می‌شوند با این تفاوت که آلفا به جای 8 بیت بالا، در ۸ بیت پایین ذخیره می‌شود. به عنوان مثال رنگ قهوه ای (808000FF) به شکل قرمز و سبز: 50.2٪، آبی: 0٪ و آلفا: 100٪، خواهد بود.

این همان چیزی است که در صورت خواندن داده های RGBA8888 به عنوان عبارت در این ماشین ها به دست می آورید. این روش در Portable Arbitrary Map و در FLTK استفاده می شود، اما به طور کلی نادر است.

 

بایت ها بر اساس ترتیب ABGR در یک سیستم کوچک-اندین در حافظه ذخیره می شوند.

جستار های وابسته ویرایش

گرافیک قابل حمل در شبکه ها

منابع ویرایش

  1. «Portable Network Graphics (PNG) Specification (Second Edition)». www.w3.org. دریافت‌شده در ۲۰۲۳-۰۶-۰۹.
  2. "RGBA color model". Wikipedia (به انگلیسی). 2023-03-19.