在医院做图像处理时碰到双面扫描仪,需要将扫描到的2张图像分割为一张并打印。在分割图像的过程中总是不得法,后来虽然有CBM666的指导,但给的方法也还是不太方便。无意中在翻一本vb书的时候看到了一个使用Microsoft Picture Clip控件的例子,想要分割图像那是超级简单。分享以下代码,保证拿了就可以用。
'引用Microsoft Picture Clip控件,放置它名称为Pic1
'将009.jpg纵向一分为2,保存到本地Tmp1 Tmp2
Pic1.Picture = LoadPicture(App.Path + " 09.jpg")
Pic1.Cols = 2
Pic1.Rows = 1
Picture1(0).Picture = Pic1.GraphicCell(0)
Picture1(1).Picture = Pic1.GraphicCell(1)
'这种办法保存的图片是位图,会很大的。
SavePicture Picture1(0).Picture, App.Path + "Tmp1.jpg"
SavePicture Picture1(1).Picture, App.Path + "Tmp2.jpg"
'可以采用以下Picbuf控件进行图像压缩保存,需要注册IK32.OCX控件
'也可以先不保存,将图片赋给Picturebox。
picA.Picture = Pic1.GraphicCell(0)
picB.Picture = Pic1.GraphicCell(1)
Call SavePic(picA, "Tmp1")
Call SavePic(picB, "Tmp2")
Private Sub SavePic(ByVal Control As Picbuf, ByVal filename As String)
Control.ImageFormat = IK_JPEG
Control.WriteCompression = 85
Control.filename = App.Path + "" + filename + ".jpg"
Control.Store
End Sub
附CBM666分割大图片的方法,但是没有以上用控件灵活便捷: