Pokud Vám jde o možnost ty "rozstříhané" bitmapy mít v samostatných objektech, abyste s nimi mohl následně pracovat, zkuste třeba toto (je to celkem jednoduché, tak jsem to neokomentovával, pokud něco nebude jasné, klidně se ozvěte):
Public Class Form1
Dim poleObrazku(,) As Bitmap
Dim sourceBitmap As Bitmap
Private Sub rozdelObrazky(ByVal pocetX As Integer, ByVal pocetY As Integer)
ReDim poleObrazku(pocetX-1, pocetY-1)
Dim X0, Y0, width, height As Integer
sourceBitmap = New Bitmap("d:\obr.jpg")
For x As Integer = 0 To pocetX - 1
X0 = x / pocetX * sourceBitmap.Width
width = (x + 1) / pocetX * sourceBitmap.Width - X0
For y As Integer = 0 To pocetY - 1
Y0 = y / pocetY * sourceBitmap.Height
height = (y + 1) / pocetY * sourceBitmap.Height - Y0
poleObrazku(x, y) = sourceBitmap.Clone(New Rectangle(X0, Y0, width, height), sourceBitmap.PixelFormat)
Next
Next
End Sub
Private Sub tiskniObrazky(ByVal mezera As Integer)
Dim x, y As Integer
Dim g As Graphics = Me.CreateGraphics
x = 0
y = 0
For i As Integer = 0 To poleObrazku.GetLength(0) - 1
For j As Integer = 0 To poleObrazku.GetLength(1) - 1
g.DrawImage(poleObrazku(i, j), x, y)
y += poleObrazku(i, j).Height + mezera
Next
x += poleObrazku(i, 0).Width + mezera
y = 0
Next
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
rozdelObrazky(2, 5)
tiskniObrazky(2)
End Sub
End Class
Samozřejmě, Vámi popsaný problém řeší pouze ta první metoda, vše ostatní je tam pouze pro demonstraci funkčnosti.
|