ALPHA: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
Tags: Manual revert Reverted
No edit summary
Tags: Undo Reverted
Line 23: Line 23:
{{Cl|SCREEN}} 13
{{Cl|SCREEN}} 13


clr~& = {{Cl|_RGBA}}(255, 0, 255, 192) 'returns closest palette color attribute
clr~& = {{Cl|_RGBA}}(255, 0, 255, 192) 'returns closest palette color attribute  
{{Cl|PRINT}} "Color:"; clr~&
{{Cl|PRINT}} "Color:"; clr~&


Line 42: Line 42:
BG& = {{Cl|POINT}}(1, 1)
BG& = {{Cl|POINT}}(1, 1)
{{Cl|PRINT}} "Alpha ="; {{Cl|_ALPHA}}(BG&); "Press a key to use CLS!"
{{Cl|PRINT}} "Alpha ="; {{Cl|_ALPHA}}(BG&); "Press a key to use CLS!"
K$ = INPUT$(1)
K$ = INPUT$(1)                  
{{Cl|CLS}}
{{Cl|CLS}}
BG& = {{Cl|POINT}}(1, 1)
BG& = {{Cl|POINT}}(1, 1)
{{Cl|PRINT}} "CLS Alpha ="; {{Cl|_ALPHA}}(BG&)
{{Cl|PRINT}} "CLS Alpha ="; {{Cl|_ALPHA}}(BG&)  
{{CodeEnd}}
{{CodeEnd}}
{{OutputStart}}CLS Alpha = 255  {{OutputEnd}}
{{OutputStart}}CLS Alpha = 255  {{OutputEnd}}

Revision as of 23:11, 22 January 2023

The _ALPHA function returns the alpha channel transparency level of a color value used on a screen page or image.


Syntax

result& = _ALPHA(color~& [, imageHandle&])


Description

  • If imageHandle& is omitted, it is assumed to be the current write page. Invalid handles will create Illegal function call errors.
  • _NEWIMAGE 32 bit SCREEN modes will always use an _UNSIGNED LONG color~& value.
    • Color values that are set as a _CLEARCOLOR always have an alpha level of 0 (transparent).
    • _SETALPHA can set any alpha level from 0 (or fully transparent) to 255 (or opaque).
    • Normal color values that are set by _RGB or _RGB32 always have an alpha level of 255(opaque).
  • In 4 (16 color) or 8 (256 color) bit palette screens the function will always return 255.
  • _RED32, _GREEN32, _BLUE32 and _ALPHA32 are all equivalent to _RED, _GREEN, _BLUE and _ALPHA but they are highly optimized and only accept a 32-bit color (B8:G8:R8:A8). Using them (opposed to dividing then ANDing 32-bit color values manually) makes code easy to read.
  • NOTE: 32 bit _NEWIMAGE screen page backgrounds are transparent black or _ALPHA 0. Use _DONTBLEND or CLS for opaque.


Examples

Example 1: Alpha transparency levels are always 255 in 4 or 8 bit screen modes.

SCREEN 13

clr~& = _RGBA(255, 0, 255, 192) 'returns closest palette color attribute 
PRINT "Color:"; clr~&

COLOR clr~&
PRINT "Alpha:"; _ALPHA(clr~&)

END
Color 36
Alpha: 255
Explanation: _RGBA cannot change the _ALPHA level. _ALPHA32 would return 0 on any non-32 bit image or page.


Example 2: Finding the transparency of a 32 bit screen mode's background before and after CLS.

SCREEN _NEWIMAGE(640, 480, 32)
BG& = POINT(1, 1)
PRINT "Alpha ="; _ALPHA(BG&); "Press a key to use CLS!"
K$ = INPUT$(1)                   
CLS
BG& = POINT(1, 1)
PRINT "CLS Alpha ="; _ALPHA(BG&) 
CLS Alpha = 255   
Explanation: Set the ALPHA value to 255 using CLS to make the background opaque when overlaying pages.


See also



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link