Sub GetBitmapFromView(VwSource As View) As Bitmap
Dim StrMethod As String = "Sub GetBitmapFromView(VwSource As View) As Bitmap"
Dim BmpResult As Bitmap = Null
Try
Dim Bmp As Bitmap
Dim IntWidth As Int
IntWidth = VwSource.Width
Dim IntHeight As Int
IntHeight = VwSource.Height
Bmp.InitializeMutable(IntWidth, IntHeight)
Dim Cnv As Canvas
Cnv.Initialize2(Bmp)
Dim Rfl As Reflector
Rfl.Target = Cnv
Dim AryObjectRef(1) As Object
AryObjectRef = Array As Object (Rfl.GetField("canvas"))
Dim AryObjectTypeRef(1) As String
AryObjectTypeRef = Array As String ("android.graphics.Canvas")
Dim RftView As Reflector
RftView.Target = VwSource
RftView.RunMethod4("draw", AryObjectRef, AryObjectTypeRef)
BmpResult = Bmp
Catch
CdException.Show(StrClass, StrMethod, LastException)
End Try
Return BmpResult
End Sub
Sub PasteBitmap(ImgTarget As ImageView, BmpSource As Bitmap, IntXOffset As Int, IntYOffset As Int)
Dim StrMethod As String = "Sub PasteBitmap(ImgTarget As ImageView, BmpSource As Bitmap, IntXOffset As Int, IntYOffset As Int)"
Try
Dim CnvImgTarget As Canvas
CnvImgTarget.Initialize(ImgTarget)
Dim Rct As Rect
Dim BmpImgTarget As Bitmap
BmpImgTarget = GetBitmapFromView(ImgTarget)
Rct.Initialize(0, 0, BmpImgTarget.Width, BmpImgTarget.Height)
CnvImgTarget.DrawBitmap(BmpImgTarget, Null, Rct)
Rct.Initialize(IntXOffset, IntYOffset, BmpSource.Width+IntXOffset, BmpSource.Height+IntYOffset)
CnvImgTarget.DrawBitmap(BmpSource, Null, Rct)
ImgTarget.Invalidate
Catch
CdException.Show(StrClass, StrMethod, LastException)
End Try
End Sub
Sub GetJoinedBitmap(BmpFirst As Bitmap, BmpSecond As Bitmap) As Bitmap
Dim StrMethod As String = "Sub GetJoinedBitmap(BmpFirst As Bitmap, BmpSecond As Bitmap) As Bitmap"
Dim BmpResult As Bitmap = Null
Try
Dim IntWidth As Int
If BmpFirst.Width > BmpSecond.Width Then
IntWidth = BmpFirst.width
Else
IntWidth = BmpSecond.width
End If
Dim IntHeight As Int
IntHeight = BmpFirst.Height + BmpSecond.Height
Dim BmpTarget As Bitmap
BmpTarget.InitializeMutable(IntWidth, IntHeight)
Dim CnvBitmap As Canvas
CnvBitmap.Initialize2(BmpTarget)
Dim IntTempHeight As Int
IntTempHeight = BmpFirst.height
Dim RctBmpFirstDestination As Rect
RctBmpFirstDestination.Initialize(0, 0, BmpFirst.width, BmpFirst.height)
Dim RctBmpFirstSource As Rect
RctBmpFirstSource.Initialize(0, 0, BmpFirst.width, BmpFirst.height)
CnvBitmap.DrawBitmap(BmpFirst, RctBmpFirstSource, RctBmpFirstDestination)
Dim RctBmpSecondDestination As Rect
RctBmpSecondDestination.Initialize(0, BmpFirst.height, IntWidth, BmpFirst.height + BmpSecond.height)
Dim RctBmpSecond As Rect
RctBmpSecond.Initialize(0, 0, BmpSecond.width, BmpSecond.height)
CnvBitmap.DrawBitmap(BmpSecond, RctBmpSecond, RctBmpSecondDestination)
BmpResult = BmpTarget
Catch
CdException.Show(StrClass, StrMethod, LastException)
End Try
Return BmpResult
End Sub
Sub GetSubBitmap(BmpSource As Bitmap, IntLeft As Int, IntTop As Int, IntWidth As Int, IntHeight As Int) As Bitmap
Dim StrMethod As String = "Sub GetSubBitmap(BmpSource As Bitmap, IntLeft As Int, IntTop As Int, IntWidth As Int, IntHeight As Int) As Bitmap"
Dim BmpResult As Bitmap
Try
Dim RctDestination As Rect
RctDestination.Initialize(0, 0, IntWidth - IntLeft, IntHeight - IntTop)
Dim RctSource As Rect
RctSource.Initialize(IntLeft, IntTop, IntWidth, IntHeight)
Dim BmpTarget As Bitmap
BmpTarget.InitializeMutable(IntWidth - IntLeft, IntHeight - IntTop)
Dim CnvBitmap As Canvas
CnvBitmap.Initialize2(BmpTarget)
CnvBitmap.DrawBitmap(BmpSource, RctSource, RctDestination)
BmpResult = BmpTarget
Catch
CdException.Show(StrClass, StrMethod, LastException)
End Try
Return BmpResult
End Sub