Se vuoi qualcosa di primitivo questa è una piccola funzione che ho fatto anni fa per trasformare un'immagine da colori in scala di grigi.
codice:
Dim Scala(256)
Private Sub Form_Load()
    Dim i As Integer
    For i = 0 To 255
        Scala(i) = CLng(16777215 / 256 * i)
    Next i
    'For i = 0 To 9
    '    Scala2(i) = CLng(16777215 / 10 * i)
    'Next i
End Sub

Private Sub Command2_Click()
    Form1.Enabled = False
    Dim i, j, z As Integer
    Dim appoggio
    
    
    For j = 0 To Form1.Picture1.ScaleHeight
        For i = 0 To Form1.Picture1.ScaleWidth
            appoggio = Form1.Picture1.Point(i, j)
            For z = 0 To 255
                If appoggio < Scala(z) Then
                    Form1.Picture1.PSet (i, j), RGB(z, z, z)
                    Exit For
                End If
                If z = 255 Then
                    Form1.Picture1.PSet (i, j), RGB(255, 255, 255)
                End If
            Next z
            
        Next i
    Next j
    
    
    Form1.Enabled = True

End Sub
Non è il massimo, ma è stato uno dei miei primi programmi, ne vado fiero