|
directdraw中Surface.Lock函数返回的是Array是二维数组,是不是对应屏幕上的点啊?
例子:m_Surface是一个已经创建的页面
System.Int32[,] s=(System.Int32[,])m_Surface.Lock(LockFlags.SurfaceMemoryPointer);
int width=m_Surface.SurfaceDescription.Width;
int height=m_Surface.SurfaceDescription.Height;
for (int y =height-1;y>=0;y--)
{
for (int x=0;x<width;x++)
{
int outpixel=(int)s.GetValue(x,y);
}
}
发现得到的outpixel有的与图片的象素值相同,有的象素值则不同
图片为8位色图片在窗口模式(真彩32位色)下正常
图片为24位色在窗口模式(真彩32位色)下就不正常了
|
|