网上有例子使用LoadPicture函数加载图片到PictureBox控件,然后通过GetPixel函数读取像素颜色。如下:
Set pic.Picture = LoadPicture(FileName)
Width = Int(pic.ScaleWidth / 15)
Height = Int(pic.ScaleHeight / 15)
For I = 1 To Width
For J = 1 To Height
rgb = GetPixel(pic.hdc, I, J)
Next
Next但我现在要在模块中直接加载图片文件,然后读取所有像素颜色进行统计分析。图片可能是JPG、BMP。请问怎样在VB中实现以上功能。就是不使用PictureBox如何实现上述功能。VBPictureBox像素颜色
Set pic.Picture = LoadPicture(FileName)
Width = Int(pic.ScaleWidth / 15)
Height = Int(pic.ScaleHeight / 15)
For I = 1 To Width
For J = 1 To Height
rgb = GetPixel(pic.hdc, I, J)
Next
Next但我现在要在模块中直接加载图片文件,然后读取所有像素颜色进行统计分析。图片可能是JPG、BMP。请问怎样在VB中实现以上功能。就是不使用PictureBox如何实现上述功能。VBPictureBox像素颜色
参考这位高手写的:
http://blog.csdn.net/laviewpbt/archive/2009/05/05/4150747.aspx如果要获取大量的图像数据,最好不要用 GetPixel等 一次取一点的函数。
这种只适合用于在一个大图片中,获取分散的少数点的情况。如果要取全部或者大片的图像数据,还是用 GetDIBits() 好些。
虽然看起来有点复杂,但把所有数据取到数组中后,再取每个象素的图像数据就比较方便、快速了。