کتابخانه گرافیکی دوبعدی در emWin جلسه ی چهارم

کتابخانه گرافیکی دوبعدی در emWin جلسه ی سوم
ژوئن 30, 2016
تابعی برای کالیبراسیون تاچ در emwin
جولای 17, 2016

کتابخانه گرافیکی دوبعدی در 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);

اسکرین شات از مثال بالا :

 

alpha-blending

 

توابع مربوط به ترکیب آلفا:

۱)

unsigned GUI_EnableAlpha(unsigned OnOff);

شرح تابع :

ترکیب آلفا به صورت اتوماتیک را ، فعال یا غیر فعال می کند.
ورودی تابع یک برای فعال کردن و صفر برای غیر فعال کردن ترکیب آلفای اتوماتیک می باشد.

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

۲)

unsigned GUI_PreserveTrans(unsigned OnOff);

شرح تابع:

 

unsigned GUI_PreserveTrans(unsigned OnOff);

برای ادامه ی توضیحات توابع ، در جلسات آتی با ما همراه باشید.

حسین
حسین
من 28 سال سن دارم و رشته ی تحصیلی ام مهندسی برق قدرت بوده علاوه بر برق علاقمند به دنیای الکترونیک ، برنامه نویسی و طراحی وب هستم . این سایت رو برای آموزش رابط گرافیکی emWin راه اندازی کردم که بدون کمک شما جلو رفتن غیر ممکنه پس اگه آموزش یا مطالب مرتبطی دارید برام ایمیل کنید تا به اسم خودتون توی سایت منتشر بشه. hosseintomari@gmail.com
اشتراک
اطلاع از
guest

0 نظرات
بازخورد داخلی
مشاهده همه نظرات
0
برای بهبود مطالب، لطفاً نظر بدهید.x