网上有例子使用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像素颜色

解决方案 »

  1.   

    另外,你这个方法读取点的颜色速度将会非常慢,可以按照一下http://blog.csdn.net/worldy/article/details/7381106
      

  2.   

    你如果不用窗口,想在标准模块中获取图像数据,可以用 StdPicture对象 来加载图像。
    参考这位高手写的:
    http://blog.csdn.net/laviewpbt/archive/2009/05/05/4150747.aspx如果要获取大量的图像数据,最好不要用 GetPixel等 一次取一点的函数。
    这种只适合用于在一个大图片中,获取分散的少数点的情况。如果要取全部或者大片的图像数据,还是用 GetDIBits() 好些。
    虽然看起来有点复杂,但把所有数据取到数组中后,再取每个象素的图像数据就比较方便、快速了。