[vba]VB图像处理,(一)像素的获取和输出

时间:2014-02-28  来源:图像处理  阅读:
一直想自己写一个图像处理的软件。在网络上找各种图像处理方面的技术文章。
但是找到的往往不是高深的理论,就是用C++等语言写出来的例程,非常不便。
其实很多时候,我想找的只是一种描述,或者是伪代码,既有利于理解,也有利于改写成任何语言的版本。
近日,我把自己学到的一些图像处理方面的知识写了一个ImageCast的小程序。把自己所掌握的处理技巧作了一个“包装”,感慨于资料收集的不便和学习VB中的点点滴滴。特将算法提供给大家以作参考。希望对于一些和我一样在网上寻觅不获的朋友有所帮主。
要处理一个图像,首先要获得该图像的像素值,而VB本身提供的PICTURE控件虽然可以打开很多类型的图片,但是它提供的那个POINT方法读取像素实在是太慢。而使用GetPixel这个API的速度也快不到哪里去,因为PIONT方法本身就是对于GetPixel的一个包装。
在VB中要快速获取一幅在PICTURE中打开的图像比较快速的方法是使用DIB方法,当然还有DDB方法,不过使用DDB方法还需要考虑不同颜色深度的图像的分别处理,在程序的实现上要相对复杂,而使用DIB方法则不必,并且在处理速度上比DDB方法也慢的有限。
过程一:获得一个在PICTURE控件中打开的图像的所有像素。
Public Sub DibGet(ByVal IdSource As Long, XBegin As Long, ByVal YBegin As Long, ByVal XEnd As Long, ByVal YEnd As Long)
Dim iBitmap As Long
Dim iDC As Long
Dim I As LongDim
Dim W As Long
Dim H As Long
On Error GoTo ErrLine
Done = False
TimeGet = timeGetTime
InPutWid = XEnd - XBegin
InPutHei = YEnd - YBegin
W = InPutWid + 1
H = InPutHei + 1
I = (Bits 8) - 1
ReDim ColVal(I, InPutWid, InPutHei)
With bi24BitInfo.bmiHeader
.biBitCount = Bits
.biCompression = 0&
.biPlanes = 1
.biSize = Len(bi24BitInfo.bmiHeader)

[vba]VB图像处理,(一)像素的获取和输出

http://m.bbyears.com/jiaocheng/4533.html

推荐访问:vbox vba教程 vbs vbscript v百科
相关阅读 猜你喜欢
本类排行 本类最新