vb 图像处理问题 利用vb实现两张图像(bmp或tif)颜色相减(直接文件操作,或者picturebox都可以),并保存下来。 也就是为了找出图片A和B的区别,最好有点(关键)代码 API,MatrixVB....只要能实现都可以,不要用GetPixel:效率太低 谢谢啦 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主对 BMP 文件结构熟悉的话,可以直接存取像素位进行减法运算。现在 BMP 常见的无外乎 8 bpp 和 24 bpp 的。对于前者,其实操作起来更简单,直接把调色板读入内存,后面的像素位就是指针,配合内存操作函数,速度是很快的。不过 BMP 文件的组织形式比较多,要是图省事,不妨让 Windows 给做这件事,涉及到的函数是 GetDIBits GetDIBits,如何实现对像素位进行减法运算如何获取象素值,如何相减,谢谢~谢谢 不知道你的算法是什么,这里只给出怎样得到像素的值。首先先把一幅 BMP 加载到 PictureBox 中(AutoRedraw 设为 True)。Dim tBmpInfo As BITMAPINFODim nbPerLine As LongDim byBits() As Byte'取得缓存 DC 中的 Bmp 像素位With tBmpInfo.bmiHeader .biSize = Len(tBmpInfo.bmiHeader) .biWidth = (图像宽) .biHeight = (图像高) .biPlanes = 1 .biBitCount = 24 .biCompression = BI_RGBEnd WithnbPerLine = (tBmpInfo.bmiHeader.biWidth * 3 + 3) And &HFFFFFFFCReDim byBits(nbPerLine - 1, tBmpInfo.bmiHeader.biHeight - 1) As ByteCall GetDIBits(Picture1.hDC, Picture1.Picture.Handle, 0, tBmpInfo.bmiHeader.biHeight, byBits(0, 0), tBmpInfo, DIB_RGB_COLORS)其中数组 byBits 的第一维代表 x 轴像素位置,第二维代表 y 轴。注意每个像素占 3 个字节,因此(x, y)的像素值位于 byBits(x * 3, y) 开始的三个字节中,分别是蓝、绿、红分量。此外还要注意整个位图在数组里是上下颠倒存放的。 十万火急!!!!!setup factory7.0打包问题~!~~~ VB6.0 SP6 安装时出现“对象 10 您的应用程序文件可能已被破坏,请从您原来运行它的位置重新启动安装程序。”对话框,怎么解决? 在线等解答的来了~ 哪位知道如何找到SQL server的安装路径啊 vb编译.exe文件问题 关于ADO控件访问Access数据库的问题! 一个很菜的问题! 急求救:vb打开文件的实现 请教一个WINSOCK控件的问题 关于VB7和Delphi的比较? 数字相减的问题? 请问VB中根据一定的条件修改SQL表中某一字段的值呢?
不过 BMP 文件的组织形式比较多,要是图省事,不妨让 Windows 给做这件事,涉及到的函数是 GetDIBits
如何获取象素值,如何相减,谢谢~谢谢
Dim nbPerLine As Long
Dim byBits() As Byte
'取得缓存 DC 中的 Bmp 像素位
With tBmpInfo.bmiHeader
.biSize = Len(tBmpInfo.bmiHeader)
.biWidth = (图像宽)
.biHeight = (图像高)
.biPlanes = 1
.biBitCount = 24
.biCompression = BI_RGB
End With
nbPerLine = (tBmpInfo.bmiHeader.biWidth * 3 + 3) And &HFFFFFFFC
ReDim byBits(nbPerLine - 1, tBmpInfo.bmiHeader.biHeight - 1) As Byte
Call GetDIBits(Picture1.hDC, Picture1.Picture.Handle, 0, tBmpInfo.bmiHeader.biHeight, byBits(0, 0), tBmpInfo, DIB_RGB_COLORS)其中数组 byBits 的第一维代表 x 轴像素位置,第二维代表 y 轴。注意每个像素占 3 个字节,因此(x, y)的像素值位于 byBits(x * 3, y) 开始的三个字节中,分别是蓝、绿、红分量。此外还要注意整个位图在数组里是上下颠倒存放的。