好像把dc复制到picturebox再用picture1.point获得像素很慢。getpixel应该也一样。有没快一些的方法。比如直接读设备场景,如何读。
谢谢。

解决方案 »

  1.   

    看你要进行什么操作了,如果你要单独操作一个像素的话,只能用GetPixel了。
      

  2.   

    1.建立一个DIB和一个DC,将DIB选入DC。
    2.下载zyl910的BasPtr.bas模块,将p4BytePtr(0)设置为DIB的指针。详细代码看:
    http://www.aivisoft.net/source/
    里面的很多程序都涉及到这样的应用。
      

  3.   

    那么如果用getpixel的效率是不是的确很低呢?我试了一下dib写图片的方法。的确比setpixel块,不过问题在读要很多时间。(比如复制图像,我是获得picturebox中每个像素,然后确定rgb分量再用dibsectiondevice写(因为每个点都处理,不考虑bitblt方法)).综合一下,速度是提高,不过还是慢的说。不知道有无类似例子。
    另外,放在picturebox中读像素的效率要低很多吗?
      

  4.   

    也可以,只是PictureBox的图像是DDB图像,要用GetDIBits函数来读,没做过