可以修改上面的函数为这个原型,其中参数bmpFileName指定要分割图片的文件名
Public Function DivideBmp(ByVal xLines As Integer, ByVal yLines As Integer,byVal bmpFileName as string) As Boolean
帮你写一个函数吧
'xLines 为要分成的行数,yLines为要分成的列数
Public Function DivideBmp(ByVal xLines As Integer, ByVal yLines As Integer) As Boolean
Dim OrgBmp As Bitmap = New Bitmap("pic1.jpg") ‘假设pic1.jpg为要分割的图片
Dim DivideWidth, DivideHeight As Integer
Dim DividedBmp As Bitmap
Dim xLoop, yLoop As Integer
Dim SrcGrp, DestGrp As Graphics
Dim DestRect, SrcRect As RectangleF
Dim SaveName As String ’用于指定分割出来的图片文件名
DivideWidth = OrgBmp.Width / xLines
DivideHeight = OrgBmp.Height / yLines
DividedBmp = New Bitmap(DivideWidth, DivideHeight)
DestRect = New RectangleF(0, 0, DivideWidth, DivideHeight)
For xLoop = 0 To xLines - 1
For yLoop = 0 To yLines - 1
DestGrp = Graphics.FromImage(DividedBmp)
SrcRect = New RectangleF(xLoop * DivideWidth, yLoop * DivideHeight, DivideWidth, DivideHeight)
DestGrp.DrawImage(OrgBmp, DestRect, SrcRect, GraphicsUnit.Pixel)
SaveName = "pic" & xLoop.ToString & yLoop.ToString & ".jpg"
DividedBmp.Save(SaveName)
Next
Next
End Function
你直接调用该函数就能分割并保存图片,我已经测试过了
Dim g As Graphics
g = Panel1.CreateGraphics
Dim srcRect As New RectangleF(a, a, b, b) '你想要分割的位置
Dim destRect As New RectangleF(0, 0, b-a, b-a) '每一个格子的大小
Dim img As New Bitmap(filename)
g.DrawImage(img, destRect, srcRect, GraphicsUnit.Pixel)
g.Dispose()
Dim g As Graphics
g = Panel1.CreateGraphics
Dim srcRect As New RectangleF(a, a, b, b) '你想要分割的位置
Dim destRect As New RectangleF(0, 0, b-a, b-a) '每一个格子的大小
Dim img As New Bitmap(filename)
g.DrawImage(img, destRect, srcRect, GraphicsUnit.Pixel)
g.Dispose()
图片面如何保存呢???
请各位继续关注。非常感谢