主题:tjestar帮忙
你好,一共有三四个问题,求帮忙!!!!
With BITMAP
.bmiHeader.biSize = 40 '这是什么意思???
End With
If GetDIBits(Picture1.hdc, Picture1.Picture.Handle, 0, 0, 0, BITMAP, DIB_RGB_COLORS) <> 0 Then '获取图像位图数据大小
ReDim ImgData(BITMAP.bmiHeader.biSizeImage / 3, 2) '重定义数组准备接收位图数据
If GetDIBits(Picture1.hdc, Picture1.Picture.Handle, 0, BITMAP.bmiHeader.biHeight - 1, ImgData(0, 0), BITMAP, DIB_RGB_COLORS) <> 0 Then '正式获取位图数据并将数据存入定义的数组中
'注意数组中颜色分量的存储顺序为:B、G、R(并不是R、G、B),如果你需要对图像进行处理只需改变数组中的数据即可完成
'**************** 下面这段程序是将图像亮度变暗(只作为演示,其它效果你可以自己动手做) ?????请再给出其他的一些效果???? ***********************
'注意:第一条扫描线的位置是从左下角开始
'ImgData(X,0)中保存的为蓝色分量值
'ImgData(X,1)中保存的为绿色分量值
'ImgData(X,2)中保存的为红色分量值
For lIndex = 0 To BITMAP.bmiHeader.biSizeImage / 3
ImgData(lIndex, 0) = (ImgData(lIndex, 0) + ImgData(lIndex, 0)) / 2 '溢出why? I donnot understand???????
ImgData(lIndex, 1) = (ImgData(lIndex, 0) + ImgData(lIndex, 1) + ImgData(lIndex, 2)) / 3
ImgData(lIndex, 2) = (ImgData(lIndex, 0) + ImgData(lIndex, 1) + ImgData(lIndex, 2)) / 3
Next
'*********************************************************************
SetDIBits Picture2.hdc, Picture2.Image.Handle, 0, BITMAP.bmiHeader.biHeight - 1, ImgData(0, 0), BITMAP, DIB_RGB_COLORS '将位图数据写入PICTURE2中
End If
With BITMAP
.bmiHeader.biSize = 40 '这是什么意思???
End With
If GetDIBits(Picture1.hdc, Picture1.Picture.Handle, 0, 0, 0, BITMAP, DIB_RGB_COLORS) <> 0 Then '获取图像位图数据大小
ReDim ImgData(BITMAP.bmiHeader.biSizeImage / 3, 2) '重定义数组准备接收位图数据
If GetDIBits(Picture1.hdc, Picture1.Picture.Handle, 0, BITMAP.bmiHeader.biHeight - 1, ImgData(0, 0), BITMAP, DIB_RGB_COLORS) <> 0 Then '正式获取位图数据并将数据存入定义的数组中
'注意数组中颜色分量的存储顺序为:B、G、R(并不是R、G、B),如果你需要对图像进行处理只需改变数组中的数据即可完成
'**************** 下面这段程序是将图像亮度变暗(只作为演示,其它效果你可以自己动手做) ?????请再给出其他的一些效果???? ***********************
'注意:第一条扫描线的位置是从左下角开始
'ImgData(X,0)中保存的为蓝色分量值
'ImgData(X,1)中保存的为绿色分量值
'ImgData(X,2)中保存的为红色分量值
For lIndex = 0 To BITMAP.bmiHeader.biSizeImage / 3
ImgData(lIndex, 0) = (ImgData(lIndex, 0) + ImgData(lIndex, 0)) / 2 '溢出why? I donnot understand???????
ImgData(lIndex, 1) = (ImgData(lIndex, 0) + ImgData(lIndex, 1) + ImgData(lIndex, 2)) / 3
ImgData(lIndex, 2) = (ImgData(lIndex, 0) + ImgData(lIndex, 1) + ImgData(lIndex, 2)) / 3
Next
'*********************************************************************
SetDIBits Picture2.hdc, Picture2.Image.Handle, 0, BITMAP.bmiHeader.biHeight - 1, ImgData(0, 0), BITMAP, DIB_RGB_COLORS '将位图数据写入PICTURE2中
End If