| Home Search What's New Index Books Links Q & A Newsletter Banners Feedback Tip Jar
C# Helper...
MSDN Visual Basic Community

Title | Split an image into smaller image files in Visual Basic 6
Description | This example shows how to split an image into smaller image files in Visual Basic 6.
Keywords | image processing, graphics, split image, bitmap, split bitmap, save image, example, example program, Windows Forms programming, Visual Basic 6, VB 6
Categories | Graphics
Recently I needed separate bitmap files for the icons in the Visual Studio toolbox. I took a screen shot and then, rather than splitting the icons apart manually, I wrote this program to do it. The following code does all of the work.
    ' Split the file.
    Private Sub cmdGo_Click()
    Dim wid As Integer
    Dim hgt As Integer
    Dim piece_name As String
    Dim num_rows As Integer
    Dim num_cols As Integer
    Dim row As Integer
    Dim col As Integer
    Dim X As Integer
    Dim Y As Integer
    Dim filename As String

        ' Get the inputs.
        wid = Val(txtWidth.Text)
        hgt = Val(txtHeight.Text)
        picWhole.Picture = LoadPicture(txtFile.Text)

        ' Start splitting the Bitmap.
        piece_name = txtFile.Text
        piece_name = Left$(piece_name, InStrRev(piece_name, _
            "."))
        picPiece.Width = wid
        picPiece.Height = hgt

        num_rows = CInt(picWhole.ScaleHeight / hgt)
        num_cols = CInt(picWhole.ScaleWidth / wid)
        Y = 0
        For row = 0 To num_rows - 1
            X = 0
            For col = 0 To num_cols - 1
                ' Copy the piece of the image.
                picPiece.PaintPicture picWhole.Picture, 0, 0, _
                    wid, hgt, X, Y, wid, hgt

                ' Save the piece.
                filename = piece_name & _
                    Format$(row, "00") & _
                    Format$(col, "00") & ".bmp"
                SavePicture picPiece.Image, filename

                ' Move to the next column.
                X = X + wid
            Next col
            Y = Y + hgt
        Next row
        MsgBox "Created " & num_rows * num_cols & " files", _
            vbOKOnly, "Done"
    End Sub
The code gets the width and height that the smaller pieces should have and loads the original image. It sizes the picPiece PictureBox control so it can draw the pieces on it. Next the code figures out how many rows and columns of smaller images will fit completely within the original image and loops through the rows and columns. For each row/column value, the code uses PaintPicture to copy the appropriate piece to the picPiece PictureBox and saves the result in a bitmap file.

| Copyright © 1997-2010 Rocky Mountain Computer Consulting, Inc. All rights reserved. |
|  | Updated |