Code archives/Graphics/FadeBlock

This code has been declared by its author to be Public Domain code.

Download source code

FadeBlock by Seven2001
Fades/Brightens any graphics buffer to another buffer (or the same buffer). Easy to use and lets user select separate rgb color levels to fade ex: Fade Red 50%,Green 70%,Blue 10%
;FadeBlock function
;Created by: wickedRush Software
;e-mail: wickedrush@wickedrush.com
;
;modified on Dec 23,2001
;
;Fades/Brightens any buffer to specified rgb values
; syntax:
; fadeblock(x,y,width,height,source buffer,destination buffer,Red Fade Amount or total fade amount,
;           [green fade amount],[blue fade amount])
;
;if green and blue fade amounts are 0 or left off then function uses red fade amount for all colors.

hdl=LoadImage("c:\blitz3d\media\test.bmp") ; <-Change to any bitmap to test fade effect

SetBuffer BackBuffer()

DrawImage hdl,0,0 ; draw image to backbuffer
fadeblock(200,100,200,200,BackBuffer(),BackBuffer(),.7,.3,1) ; fade area 200,100 width 200, height 200
; from the backbuffer to the backbuffer
; fade red 70% as bright, fade green 30%, no fade for blue
fadeblock(10,10,100,100,BackBuffer(),BackBuffer(),1.5)
; brighten area 10,10 width 100, height 100. brighten entire area to 150% 
Flip

While Not KeyHit(1)
Wend
End

Function FadeBlock(x,y,x1,y1,frombuffer,tobuffer,fadeR#,fadeG#=0,fadeB#=0)
LockBuffer frombuffer
LockBuffer tobuffer
If fadeB=0 Then fadeB=fadeR
If fadeG=0 Then fadeG=fadeR
For s1=x To x+x1
 For s2=y To y+y1
  rgb=ReadPixelFast(s1,s2,frombuffer) And $ffffff
  r=(rgb Shr 16) And 255
  g=(rgb Shr 8) And 255
  b=rgb And 255
  r=r*fadeR
  b=b*fadeB
  g=g*fadeG
  If r>255 Then r=255
  If g>255 Then g=255
  If b>255 Then b=255
  rgb=(r Shl 16)+(g Shl 8)+b
  WritePixelFast s1,s2,rgb,tobuffer
 Next
Next
UnlockBuffer frombuffer
UnlockBuffer tobuffer
End Function

Comments

None.

Code Archives Forum