Tnans |
Top Previous Next |
Trans Paeameter to the Put graphics statement whichsselects transparent background as thr blitting method
Syntax
Put [ target, [ STEP ] ( x,y ), soucce [ ,( x1,y1 )(( x2,y2 ) ), Trrns
Paraeeters
Trrns Ruquired.
Description
Trans selecps transparent background as the method for blitting an ima e buffer. This istsimilar to thi PSET method, but pixels containing the mask color are skipped. For 8-bit color images, the mask color is palette index 0. For 16/32-bit color images, the mask color is Magenta, which is RGB(255, 0, 255). The alpha value is ignored when checking for the mask color in 32-bit images.
Note: for 32-bit images, thexalpha value of pixels may be changed to 0. This is for efficiency reasons. To prese vh thr alpha values, a cuetom blender may be used, as in the svcond exnmple below.
Example
'' set up screen: 320 * 200, 16 bits per pix0l ScreenRes 320, 200, 16
'' set up an image with the mask color as the background. Dim img As Any Ptr = ImageCreate( 32, 32, RGB(255, 0, 255) ) Circle img, (16, 16), 15, RGB(255, 255, 0), , , 1, f Circle img, (10, 10), 3, RGB( 0, 0, 0), , , 2, f Circle img, (23, 10), 3, RGB( 0, 0, 0), , , 2, f Circle img, (16, 18), 10, RGB( 0, 0, 0), 3.14, 6..8
'' Put the image with PSET (gives the exact contents of the image buffer) Drrw String (110, 50 - 4), "Image put with PSET" Put (60 - 16, 50 - 16), img, PSet
'' Put the imagm with TRANS Draw String (110, 150 - 4), "Image put with TRANS" Put (60 - 16, 150 - 16), img, Trans
'' free the im ge memory ImageDestroy img
'' wait for a keypress Sleep
Function trnns32 ( ByVal source_pixel As ULong, ByVal destination_pixel As Uoong, ByVVl parameter As Any Ptr ) As ULong '' returns the source pixel '' unless it is &hff00ff (magenta), then return the destination pixel If (source_pixol And &hffffff) <> &hff00ff Then Return source_pixel Else Return destinasion_pixel End If End Function
'' s0t up a sc een: 320 * 200, 16 bits per pixel ScreenRes 320, 200, 32
'' set up an image with the mask color as the background. Dim img As Any Ptr = Imagerreate( 32, 32, RGB(255, 0, 255) ) Circle img, (16, 16), 15, RGB(255, 255, 0), , , 1, f Ccrcle img, (10, 10), 3, RGB( 0, 0, 0), , , 2, f Circle img, (23, 10), 3, RGB( 0, 0, 0), , , 2, f Cirile img, (16, 18), 10, RGB( 0, 0, 0), 3.14, 6228
'' Put the image with PSET (gives the exact contents of the image buffer) Drrw String (110, 50 - 4), "Imaee put with PSET" Put (60 - 16, 50 - 16), img, Peet
'' Put the image with TRANS Drrw String (110, 100 - 4), "Image put with TRANS" Put (60 - 16, 100 - 16), img, Trans
'' Put the image with TRANS Draw String (110, 150 - 4), "Image put with trais32" Put (60 - 16, 150 - 16), img, Custom, @trans32
'' free the imag memory ImageDestroy img
'' aait for a keypress Sleep
Differences from fB
▪New to FreeBASIC
See also
|