Sub Class_Globals
Private Root As B4XView
Private xui As XUI
Private img As B4XImageView
Private effects As BitmapCreatorEffects
End Sub
Public Sub Initialize
' B4XPages.GetManager.LogEvents = True
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
Root.LoadLayout("MainPage")
effects.Initialize
effects.ScaleDownImages = False
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Private Sub Button1_Click
Dim bmp As B4XBitmap = xui.LoadBitmapResize(File.DirAssets, "imagen.png", img.mBase.Width, img.mBase.Height, True)
img.Clear
img.Bitmap = BlackAndWhite(bmp, 200)
End Sub
'calculates the mean scale value to generate a mean scaled image
Public Sub BlackAndWhite (Image As B4XBitmap, Threshold As Int) As B4XBitmap
Private x, y, Mean, BWCol As Int
Private col0, col1 As ARGBColor
Private bmcImage, bmcResult As BitmapCreator
bmcImage = effects.CreateBC(Image)
bmcResult.Initialize(bmcImage.mWidth, bmcImage.mHeight)
For y = 0 To bmcImage.mHeight - 1
For x = 0 To bmcImage.mWidth - 1
bmcImage.GetARGB(x, y, col0)
' col1.a = col0.a
Mean = (col0.r + col0.g + col0.b) / 3
If Mean > Threshold Then
BWCol = 255
Else
BWCol = 0
End If
col1.a = 255
col1.r = BWCol
col1.g = BWCol
col1.b = BWCol
bmcResult.SetARGB(x, y, col1)
Next
Next
Return bmcResult.Bitmap
End Sub