VB.net 中切割图片

shirven 2004-12-06 03:29:38
现有一张图片.Jpg 或.gif 要将它平均切成X*Y份(x不行数Y为列数),然后保存为.Jpg 或.gif
请问如何实现.希望能说得详细点.谢谢
...全文
671 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
maybelian 2004-12-08
  • 打赏
  • 举报
回复
可以修改上面的函数为这个原型,其中参数bmpFileName指定要分割图片的文件名
Public Function DivideBmp(ByVal xLines As Integer, ByVal yLines As Integer,byVal bmpFileName as string) As Boolean

上面我只是大概写了一下,代码很蹩脚,只是测试一下能不能实现你的功能


maybelian 2004-12-08
  • 打赏
  • 举报
回复
帮你写一个函数吧
'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
你直接调用该函数就能分割并保存图片,我已经测试过了
shirven 2004-12-08
  • 打赏
  • 举报
回复
Dim bmp As Bitmap
bmp = picturebox.Image
bmp.Save(filename)
这个方法我试过了
但是不行,系统报错“未将对像的引用设为对像的实例”
但是如果我事先给picturebox.Image赋了值的话那么可以保存,保存的是我原来赋值的图片.而不是后来切过去的图片
我在线等待中请各位大侠继续为我想办法,如果分不够的话可以无限加(在我能力范围内).谢谢各位。
shirven 2004-12-07
  • 打赏
  • 举报
回复
我如何保存已经切好的图片呢?我现在在Picturebox中显示出来了。
兔子-顾问 2004-12-07
  • 打赏
  • 举报
回复
mark 学习
cyczl666 2004-12-07
  • 打赏
  • 举报
回复
Panel1可以改成Picturebox或者别的东西
cyczl666 2004-12-07
  • 打赏
  • 举报
回复
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()
shirven 2004-12-07
  • 打赏
  • 举报
回复
GIF图片不会动的
shirven 2004-12-07
  • 打赏
  • 举报
回复
YidingHe(机枪兵)谢谢您 具体如何实现能不能告诉我啊.
cyczl666 2004-12-07
  • 打赏
  • 举报
回复
再定义一个Bitmap,保存阿
Dim bmp As Bitmap
bmp = picturebox.Image
bmp.Save(filename)
shirven 2004-12-07
  • 打赏
  • 举报
回复
请会的大侠们快点帮帮我吧,我在线等待中。
shirven 2004-12-07
  • 打赏
  • 举报
回复
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()
图片面如何保存呢???
请各位继续关注。非常感谢
捏造的信仰 2004-12-06
  • 打赏
  • 举报
回复
转换成bitmap就行了。

新建一个bitmap,然后用原image的Graphics将原image画到新的bitmap上面。
兔子-顾问 2004-12-06
  • 打赏
  • 举报
回复
gif的图片需要动么?会动的图片切一块不容易啊。
JERRY_LIU 2004-12-06
  • 打赏
  • 举报
回复
帮你顶一下吧,关注中

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧