mirror of
https://github.com/QB64Official/qb64.git
synced 2024-08-31 07:40:17 +00:00
60 lines
2.7 KiB
Text
60 lines
2.7 KiB
Text
|
The {{KW|_ALPHA}} function returns the alpha channel transparency level of a color value used on a screen page or image.
|
||
|
|
||
|
|
||
|
{{PageSyntax}}
|
||
|
:{{Parameter|result&}} = {{KW|_ALPHA}}({{Parameter|colour~&}} [, {{Parameter|imageHandle&}}])
|
||
|
|
||
|
|
||
|
{{PageDescription}}
|
||
|
* If {{Parameter|imageHandle&}} is omitted, it is assumed to be the current write page. Invalid handles will create [[ERROR Codes|Illegal function call]] errors.
|
||
|
* [[_NEWIMAGE]] 32 bit [[SCREEN]] modes will always use an [[_UNSIGNED]] [[LONG]] ''colour'' 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!'''
|
||
|
|
||
|
|
||
|
''Example 1:'' Alpha transparency levels are always 255 in 4 or 8 bit screen modes.
|
||
|
{{CodeStart}} '' ''
|
||
|
{{Cl|SCREEN}} 13
|
||
|
|
||
|
clr~& = {{Cl|_RGBA}}(255, 0, 255, 192) 'returns closest palette color attribute
|
||
|
{{Cl|PRINT}} "Color:"; clr~&
|
||
|
|
||
|
{{Cl|COLOR}} clr~&
|
||
|
{{Cl|PRINT}} "Alpha:"; {{Cl|_ALPHA}}(clr~&)
|
||
|
|
||
|
{{Cl|END}}
|
||
|
{{CodeEnd}}
|
||
|
{{OutputStart}}{{text|Color 36|#FFFFFF}}
|
||
|
{{text|Alpha: 255|#FF00FF}}
|
||
|
{{OutputEnd}}
|
||
|
: ''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]].
|
||
|
{{CodeStart}} '' ''
|
||
|
{{Cl|SCREEN}} {{Cl|_NEWIMAGE}}(640, 480, 32)
|
||
|
BG& = {{Cl|POINT}}(1, 1)
|
||
|
{{Cl|PRINT}} "Alpha ="; {{Cl|_ALPHA}}(BG&); "Press a key to use CLS!"
|
||
|
K$ = INPUT$(1)
|
||
|
{{Cl|CLS}}
|
||
|
BG& = {{Cl|POINT}}(1, 1)
|
||
|
{{Cl|PRINT}} "CLS Alpha ="; {{Cl|_ALPHA}}(BG&) '' ''
|
||
|
{{CodeEnd}}
|
||
|
{{OutputStart}}CLS Alpha = 255 {{OutputEnd}}
|
||
|
: ''Explanation:'' Set the ALPHA value to 255 using [[CLS]] to make the background opaque when overlaying pages.
|
||
|
|
||
|
|
||
|
{{PageSeeAlso}}
|
||
|
* [[_ALPHA32]], [[_SETALPHA]]
|
||
|
* [[_RGBA]], [[_RGBA32]] {{text|(set color with alpha)}}
|
||
|
* [[_CLEARCOLOR]], [[_CLEARCOLOR (function)]]
|
||
|
* [[_RED]], [[_GREEN]], [[_BLUE]]
|
||
|
* [[_RED32]], [[_GREEN32]]. [[_BLUE32]]
|
||
|
* [[CLS]], [[COLOR]], [[Images]]
|
||
|
|
||
|
|
||
|
{{PageNavigation}}
|