SETALPHA

From QB64 Wiki

Jump to: navigation, search

The _SETALPHA statement sets the alpha channel transparency level of some or all of the pixels of an image.


Syntax:

_SETALPHA alpha&[, colour1&][ TO colour2&] [, imageHandle&]


Parameters:

  • alpha& is the new alpha level to set, ranging from 0 (transparent) to 255 (opaque).
  • co1or& designates the 32 bit LONG color value or range of color values c1& TO c2& 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 imageHandle& is omitted, it is assumed to be the current write page or destination image.


Usage:

  • In the first syntax, the alpha level of all pixels is set to alpha&.
  • In the second syntax, the alpha level of all pixels matching the color c& is set to alpha&.
  • In the third syntax, the alpha level of all pixels with red, green, blue and alpha channels in the range [c1& TO c2&] 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 alpha& is outside that range, an illegal function call error will occur.
  • If the image specified by imageHandle& uses a palette, an invalid handle error will occur.
  • If imageHandle& is an invalid handle, an 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.

main = _NEWIMAGE(640, 480, 32) SCREEN main _SCREENMOVE _MIDDLE Image1& = _LOADIMAGE("qb64bee.png") '<<< PNG file with white background to hide _SOURCE Image1& clr~& = POINT(0, 0) 'find background color of image _CLEARCOLOR clr~&, Image1& 'set background color as transparent topclr~& = clr~& - _RGBA(1, 1, 1, 0) 'get topmost color range just below full white _DEST main a& = 0 d = 1 DO _LIMIT 10 'regulate speed of fade in and out CLS ', _RGB(255, 0, 0) a& = a& + d IF a& = 255 THEN d = -d _SETALPHA a&, 0 TO topclr~&, Image1& 'affects all colors below bright white _PUTIMAGE (0, 342), Image1& LOCATE 1, 1: PRINT "Alpha: "; a& _DISPLAY LOOP UNTIL a& = 0

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. QB64bee.png.


See also:

  • _ALPHA, _ALPHA32 (read transparency level)
  • _RGBA, _RGBA32 (set color levels and alpha)
  • _CLEARCOLOR (sets a transparent color)
  • _CLEARCOLOR (function) (finds transparent color)
  • _BLEND, _DONTBLEND
  • COLOR, Images



Navigation:
Go to Keyword Reference - Alphabetical
Go to Keyword Reference - By usage
Go to Main WIKI Page
Views
  • Page
  • Discussion
  • View source
  • History
Personal tools
  • Log in
Toolbox