This should work .... As you can see ... it's dog slow. The percent param should be between 0 and 1.0.
Stevie
Graphics 800,600,16,1
;load starting image
Global Image1 = LoadImage( "Screenshot003.bmp")
;load ending image
Global Image2 = LoadImage( "Screenshot006.bmp")
;create image to be displayed same size as other 2
Global Image3 = CreateImage( ImageWidth( Image1), ImageHeight( Image1) )
Dir = 10
Cur = 0
While Not KeyDown(1)
Cur = Cur + Dir : If Cur = 0 Or Cur = 100 Dir = - Dir
IMAGEblend( Image1, Image2 , Image3 , Floor(Cur) / 100.0 )
DrawImage Image3, 0,0
Flip
Wend
;========================================================================================
;========================================================================================
;========================================================================================
Function IMAGEblend( Image1, Image2 , Image3 , Percent# )
IW = ImageWidth( Image1 )
IH = ImageHeight( Image1 )
LockBuffer ImageBuffer( Image1 )
LockBuffer ImageBuffer( Image2 )
LockBuffer ImageBuffer( Image3 )
For j = 0 To IH- 1
For i = 0 To IW - 1
;get colour info from image 1
argb1 = ReadPixelFast( i,j, ImageBuffer( image1 ) )
r1 = ( argb1 And $FF0000) Shr 16
g1 = ( argb1 And $FF00 ) Shr 8
b1 = ( argb1 And $FF )
a1 = ( argb1 And $FF000000 ) Shr 24
;get colour info from image 2
argb2 = ReadPixelFast( i,j, ImageBuffer( image2 ) )
r2 = ( argb2 And $FF0000) Shr 16
g2 = ( argb2 And $FF00 ) Shr 8
b2 = ( argb2 And $FF )
a2 = ( argb2 And $FF000000 ) Shr 24
;interpolate colours from image 1 to image 2
r = r1 + ( r2 - r1 ) * Percent
g = g1 + ( g2 - g1 ) * Percent
b = b1 + ( b2 - b1 ) * Percent
a = a1 + ( a2 - a1 ) * Percent
argb = ( a Shl 24 ) Or ( r Shl 16 ) Or ( g Shl 8 ) Or b
WritePixelFast i , j , argb, ImageBuffer( Image3 )
Next
Next
UnlockBuffer ImageBuffer( Image1 )
UnlockBuffer ImageBuffer( Image2 )
UnlockBuffer ImageBuffer( Image3 )
SetBuffer BackBuffer()
End Function
;========================================================================================
;========================================================================================
;========================================================================================