Share My Creation Help transition photos

to make the transition between two photos I am using this code but is very very slow, any ideas for improvement? Thanks
--------------------------------------------------------------------
para hacer la transicion entre dos fotos estoy usando este codigo pero va muy muy lento, alguna idea para mejorarlo ? Gracias









Sub Process_Globals

End Sub

Sub Globals
Dim can As Canvas
Dim bm,bm2 As Bitmap
Dim value As Int
Dim i() As Int
Dim bucleA,bucleX,bucleY As Int
Dim IV1,IV2 As ImageView
End Sub

Sub Activity_Create(FirstTime As Boolean)


bm.Initialize3(LoadBitmapSample(File.DirAssets,"img08.jpg",100%x,100%y))
bm2.Initialize3(LoadBitmapSample(File.DirAssets,"img04.jpg",100%x,100%y))


iv1.Initialize("")
iv2.Initialize("")


activity.AddView(iv1,0,0,100%x,100%y)
activity.AddView(iv2,0,0,100%x,100%y)
iv1.Gravity = Gravity.FILL
iv2.Gravity = Gravity.FILL


iv1.Bitmap = bm

iv2.BringToFront
iv2.Color = Colors.Transparent
can.Initialize(iv2)


For buclea = 50 To 250 Step 50
For bucleX=0 To iv2.Width
For bucleY=0 To iv2.Height
Try
value = bm2.GetPixel(buclex ,bucley )
i = GetARGB(value)
can.DrawPoint(buclex,bucley,Colors.ARGB(bucleA,i(1),i(2),i(3)))
Catch
End Try
Next
Next
ToastMessageShow(BUCLEA,False)
Activity.Invalidate
DoEvents
Next

End Sub

Sub GetARGB(Color As Int) As Int()
Dim res(4) As Int
res(0) = Bit.UnsignedShiftRight(Bit.And(Color, 0xff000000), 24)
res(1) = Bit.UnsignedShiftRight(Bit.And(Color, 0xff0000), 16)
res(2) = Bit.UnsignedShiftRight(Bit.And(Color, 0xff00), 8)
res(3) = Bit.And(Color, 0xff)
Return res
End Sub
 

jota

Active Member
Licensed User
Longtime User
Hi, the solution to this problem I found in the Animation library with the command that works Perfet InitializeAlpha. Thanks

----------------------------------------------------------------------------------

Hi, the solution to this problem I found in the Animation library with the command that works Perfet InitializeAlpha. Thanks


Sub transAlpha(imgSaliente As Bitmap,imgEntrante As Bitmap,TimeTrans As Int)
dim ivS,ivE as imageview
ivS.Initialize("")
ivE.Initialize("")
ivE.Gravity = Gravity.FILL
ivS.Gravity = Gravity.FILL
activity.AddView(ivS,0,0,100%x,100%y)
activity.AddView(ivE,0,0,100%x,100%y)
ivS.SetBackgroundImage(imgSaliente)
ivE.SetBackgroundImage(imgEntrante)

ivS.BringToFront
ivE.BringToFront

actS.InitializeAlpha("",1,0)
actE.InitializeAlpha("",0,1)

actS.Duration = TimeTrans
actE.Duration = TimeTrans

actS.Start(ivS)
actE.Start(ivE)
End Sub
 
Last edited:
Top