کتابخانه گرافیکی دوبعدی در emWin جلسه ی چهارم
ترکیب آلفا
ترکیب آلفا یکی از روش های ترکیب تصویر پیش زمینه با پس زمینه ، برای ایجاد ظاهر نیمه شفاف است. مقدار آلفا تعیین می کند که یک پیکسل چقدر باید قابل مشاهده باشد و چه مقدار از پس زمینه باید از آن طریق نشان داده شود.
اطلاعات رنگ
emwin به صورت داخلی با ۳۲ بیت رنگ کار می کند. بدانید که emwin می تواند از ۲ فرمت برای رنگ های مختلف استفاده کند.
این قسمت تفاوت بین هر دو حالت رنگ منطقی را توضیح می دهد.
مهم این است که بدانید که در هنگام استفاده از فرمت رنگ منطقی پیش فرض (ABGR) ، یک مقدار آلفا از ۰ به معنی مات و یک مقدار از ۲۵۵ ، به معنی کاملا شفاف است.
در صورت استفاده از ARGB کاملا بالعکس می باشد: ۰ به معنی کاملا شفاف و ۲۵۵ به معنی مات.
ترکیب آلفا چگونه کار می کند
فقط کافی است تا با استفاده از تابع GUI_EnableAlpha ترکیب آلفا را فعال کنید تا به صورت اتوماتیک و کامل ترکیب آلفا انجام شود.
این باعث می شود تا ۸ بیت اطلاعات رنگ به عنوان مقدار آلفا تعیین شوند.
ترکیب آلفا برای توابعی که به رنگ پس زمینه یا پیش زمینه نیاز دارند فعال می شود.
بیت مپ ها به طور خودکار خودشان شامل مقدارهای آلفا هستند و به درستی به نمایش در می آیند. طوری که نیازی به فعال کردن ترکیب آلفا در این مورد نمی باشد.
مثال:
The following small example shows how it works: GUI_EnableAlpha(1); GUI_SetBkColor(GUI_WHITE); GUI_Clear(); GUI_SetColor(GUI_BLACK); GUI_DispStringHCenterAt("Alphablending", 45, 41); GUI_SetColor((0x40uL << 24) | GUI_RED); GUI_FillRect(0, 0, 49, 49); GUI_SetColor((0x80uL << 24) | GUI_GREEN); GUI_FillRect(20, 20, 69, 69); GUI_SetColor((0xC0uL << 24) | GUI_BLUE); GUI_FillRect(40, 40, 89, 89);
اسکرین شات از مثال بالا :
توابع مربوط به ترکیب آلفا:
۱)
unsigned GUI_EnableAlpha(unsigned OnOff);
شرح تابع :
ترکیب آلفا به صورت اتوماتیک را ، فعال یا غیر فعال می کند.
ورودی تابع یک برای فعال کردن و صفر برای غیر فعال کردن ترکیب آلفای اتوماتیک می باشد.
پس از فعال کردن ترکیب آلفا ، اطلاعات رنگ هر جسم به طور خودکار شفافیت آن را مشخص می کند.
۲)
unsigned GUI_PreserveTrans(unsigned OnOff);
شرح تابع:
unsigned GUI_PreserveTrans(unsigned OnOff);
برای ادامه ی توضیحات توابع ، در جلسات آتی با ما همراه باشید.