首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

”'GDI'发生一般性异常“ 打印一个图片每个像素的RGB值时

2013-01-02 
”'GDI'发生一般性错误“打印一个图片每个像素的RGB值时小弟刚看到图像编程,发生这个错误,在网上

”'GDI'发生一般性错误“ 打印一个图片每个像素的RGB值时
小弟刚看到图像编程,发生这个错误,在网上查了一些答案,但是没有效果,诚心求助。

            int nX=10;//这里为了简单,取每行前10个像素,pic.Width
            int nY=2;//这里取前2列,pic.Height
            
            BitmapData bmd = pic.LockBits(new Rectangle(0, 0, pic.Width, pic.Height), ImageLockMode.ReadWrite,                        PixelFormat.Format24bppRgb);
          

            int stride = bmd.Stride;
            System.IntPtr scan0 = bmd.Scan0;
         
            unsafe
            {
                byte* p = (byte*)(void*)scan0;
          
                for (n = 0; n < nY; n++)//代表行数
                {
                    for (m = 0; m < 3; m++)//代表RGB分量
                    {
                        for (i = 0; i < nX; i += 1)//代表列数
                        {
                            
                            richTextBox1.Text += p[n * stride  + i * 3 + m].ToString() + "  ";
                        }
                    }
                   pic.UnlockBits(bmd);   //提示这里 GDI发生一般性错误
                    this.Invalidate();
                }
            }


-----------------------------------------------------------------
当我nY取1时,也就是只打印第一行的像素时,没有报错,当我nY取大于1时就报错了,郁闷。
[解决办法]
没用过呢,帮你顶下吧,加油,开心每一天

热点排行