menu

Visual Basic - Image Processing 2 (make image from RGB)


Pada tutorial kemarin kita sudah membuat sebuah engine untuk membaca nilai RGB dari suatu Image, sebaliknya tutorial kali ini kita akan membuat sebuah engine yang dapat mengkoversi nilai RGB menjadi sebuah image.

Sebelum memulai tutorial kali ini, ada baiknya pahami terlebih dahulu tutorial sebelumnya.

Oke, jika anda sudah memahami tutorial sebelumnya, saatnya kita memulai prakteknya,

Pertama, buat design UI-nya dengan menggunakan tools richtextbox, button, picturebox, dan groupbox kira-kira tampilannya seperti ini,


Kemudian, klik 2kali button Make image dan ketikkan code berikut,
        Button1.Text = "waiting"
        Button1.Enabled = False

        CheckForIllegalCrossThreadCalls = False

        Dim width As Integer = CInt(TextBox1.Text.Split(CChar("|"))(1).Split(CChar("*"))(0))
        Dim height As Integer = CInt(TextBox1.Text.Split(CChar("|"))(1).Split(CChar("*"))(1))
        bild = New Bitmap(width, height)

        TextBox1.Text = TextBox1.Text.Split(CChar("|"))(0)

        For Each line In TextBox1.Lines

            Dim farbe As String = line.Split(CChar("'"))(0)
            Dim R, G, B, A As Integer
            Dim geteilt() As String = farbe.Split(CChar("-"))

            R = CInt(geteilt(0))
            G = CInt(geteilt(1))
            B = CInt(geteilt(2))
            A = CInt(geteilt(3))

            Dim x As Integer = CInt(CDbl(line.Split(CChar("'"))(1).Split(CChar(","))(0)))
            Dim y As Integer = CInt(CDbl(line.Split(CChar("'"))(1).Split(CChar(","))(1)))

            Dim c As Color = Color.FromArgb(A, R, G, B)
            bild.SetPixel(CInt(x) - 1, CInt(y) - 1, c)
        Next
        PictureBox1.Image = bild
        Button1.Text = "Done"
        Button1.Enabled = True

Selanjutnya tambahkan code berikut untuk mendeklarasikan bild sebagai sebuah object bitmap,
Dim bild As Bitmap

Sehingga fullcodenya akan tampak seperti ini,
Public Class Form1
    Dim bild As Bitmap
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Button1.Text = "waiting"
        Button1.Enabled = False

        CheckForIllegalCrossThreadCalls = False

        Dim width As Integer = CInt(TextBox1.Text.Split(CChar("|"))(1).Split(CChar("*"))(0))
        Dim height As Integer = CInt(TextBox1.Text.Split(CChar("|"))(1).Split(CChar("*"))(1))
        bild = New Bitmap(width, height)

        TextBox1.Text = TextBox1.Text.Split(CChar("|"))(0)

        For Each line In TextBox1.Lines

            Dim farbe As String = line.Split(CChar("'"))(0)
            Dim R, G, B, A As Integer
            Dim geteilt() As String = farbe.Split(CChar("-"))

            R = CInt(geteilt(0))
            G = CInt(geteilt(1))
            B = CInt(geteilt(2))
            A = CInt(geteilt(3))

            Dim x As Integer = CInt(CDbl(line.Split(CChar("'"))(1).Split(CChar(","))(0)))
            Dim y As Integer = CInt(CDbl(line.Split(CChar("'"))(1).Split(CChar(","))(1)))

            Dim c As Color = Color.FromArgb(A, R, G, B)
            bild.SetPixel(CInt(x) - 1, CInt(y) - 1, c)
        Next
        PictureBox1.Image = bild
        Button1.Text = "Done"
        Button1.Enabled = True
    End Sub
End Class

Dan tampilan akhirnya akan tampak seperti ini,



Untuk test, coba silahkan masukkan nilai RGB ini pada view richtextbox-nya,
download disini,

===DONE!===