1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-26 17:55:52 +00:00
QB64-PE/internal/help/_SETALPHA.txt
SMcNeill 6e01fc8dce Altered string compare routines (<,<=,>,>=) so they don't give false results with CHR$(0).
Added new _STRCMP and _STRICMP commands for quick string comparisons.
Cleaned up QB64 to finish removing the QUI (quick user insert) code and folders.
Altered UCASE and LCASE routines to be faster in some situations for us.
2014-09-22 08:19:03 -04:00

65 lines
3.5 KiB
Plaintext

The '''_SETALPHA''' statement sets the alpha channel transparency level of some or all of the pixels of an image.
{{PageSyntax}}
::: '''_SETALPHA ''alpha&amp;'''''[, ''colour1&amp;''][ {{KW|TO}} ''colour2&amp;''] [, ''imageHandle&amp;'']
{{Parameters}}
* {{Parameter|alpha&amp;}} is the new alpha level to set, ranging from 0 (transparent) to 255 (opaque).
* ''co1or&amp;'' designates the 32 bit [[LONG]] color value or range of color values ''c1&amp;'' TO ''c2&amp;'' to set the transparency.
* If no color value or range of colors is given, the entire image's alpha is changed, including any [[_CLEARCOLOR]] settings.
* If {{Parameter|imageHandle&amp;}} is omitted, it is assumed to be the current write page or [[_DEST|destination]] image.
''Usage:''
* In the first syntax, the alpha level of all pixels is set to {{Parameter|alpha&amp;}}.
* In the second syntax, the alpha level of all pixels matching the color {{Parameter|c&amp;}} is set to {{Parameter|alpha&amp;}}.
* In the third syntax, the alpha level of all pixels with red, green, blue and alpha channels in the range [{{Parameter|c1&amp;}} TO {{Parameter|c2&amp;}}] are set.
* The [[_ALPHA]] setting makes a 32 bit color transparent, opaque or something in between. Zero is clear and 255 totally blocks underlying images. Use it to see through backgrounds or image colors.
* If {{Parameter|alpha&amp;}} is outside that range, an [[ERROR Codes|illegal function call]] error will occur.
* If the image specified by {{Parameter|imageHandle&amp;}} uses a palette, an [[ERROR Codes|invalid handle]] error will occur.
* If {{Parameter|imageHandle&amp;}} is an invalid handle, an [[ERROR Codes|illegal function call]] error will occur.
* '''NOTE: 32 bit [[_NEWIMAGE]] screen page backgrounds are transparent black or [[_ALPHA]] 0. Use [[_DONTBLEND]] or [[CLS]] for opaque!'''
''Example:'' Using a _SETALPHA color range to fade an image in and out while not affecting the transparent white background.
{{CodeStart}} '' ''
main = {{Cl|_NEWIMAGE}}(640, 480, 32)
{{Cl|SCREEN}} main
{{Cl|_SCREENMOVE}} {{Cl|_SCREENMOVE|_MIDDLE}}
Image1&amp; = {{Cl|_LOADIMAGE}}(&quot;qb64bee.png&quot;) '&lt;&lt;&lt; PNG file with white background to hide
{{Cl|_SOURCE}} Image1&amp;
clr~&amp; = {{Cl|POINT}}(0, 0) 'find background color of image
{{Cl|_CLEARCOLOR}} clr~&amp;, Image1&amp; 'set background color as transparent
topclr~&amp; = clr~&amp; - {{Cl|_RGBA}}(1, 1, 1, 0) 'get topmost color range just below full white
{{Cl|_DEST}} main
a&amp; = 0
d = 1
DO
{{Cl|_LIMIT}} 10 'regulate speed of fade in and out
{{Cl|CLS}} ', {{Cl|_RGB}}(255, 0, 0)
a&amp; = a&amp; + d
{{Cl|IF...THEN|IF}} a&amp; = 255 {{Cl|THEN}} d = -d
{{Cl|_SETALPHA}} a&amp;, 0 {{Cl|TO}} topclr~&amp;, Image1&amp; 'affects all colors below bright white
{{Cl|_PUTIMAGE}} (0, 342), Image1&amp;
{{Cl|LOCATE}} 1, 1: {{Cl|PRINT}} &quot;Alpha: &quot;; a&amp;
{{Cl|_DISPLAY}}
{{Cl|LOOP}} {{Cl|UNTIL}} a&amp; = 0 '' ''
{{CodeEnd}}
: ''Explanation:'' The [[POINT]] value minus [[_RGBA]](1, 1, 1, 0) subtracts a small amount from the bright white color value so that the top [[_SETALPHA]] color range will not affect the [[_CLEARCOLOR]] transparency of the bright white PNG background. [https://dl.dropbox.com/u/8440706/QB64bee.png QB64bee.png].
{{PageSeeAlso}}
* [[_ALPHA]], [[_ALPHA32]] {{text|(read transparency level)}}
* [[_RGBA]], [[_RGBA32]] {{text|(set color levels and alpha)}}
* [[_CLEARCOLOR]] {{text|(sets a transparent color)}}
* [[_CLEARCOLOR (function)]] {{text|(finds transparent color)}}
* [[_BLEND]], [[_DONTBLEND]]
* [[COLOR]], [[Images]]
{{PageNavigation}}