我想知道,在DOS和WINDOWS下面,屏幕上的点,在内存中存储的时候,是存储成什么结构类型的。在WINDOWS下,我开始采用将CDC类型指针的区域,中选择描述 点结构的地方,但是不知道怎么去查找??有高手给解释吗??就是 例如:位图在内存中,每个象素点的结构是什么???请详细点!谢谢!

解决方案 »

  1.   

    不同的颜色模式,存储方式是不一样的。一般按照RGB存储,也有的按照BGR存储。
    有的时候需要存储alpha通道数据,于是就会存储成RGBA。以上的存储结构描述,没一个字母代表一个字节。============================================================================
    提问题时标题要简明扼要地说明问题内容,切忌使用"急","求救"之类不能说明问题的标题
    http://www.betajin.com/alphasun/index.htm          给我发信息请附带原帖地址
    http://alphasun.18en.com/                    http://shakingtoolkit.9126.com/
    DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析
      

  2.   

    所谓的"555"和"565"。我们经常用16位色,但16除3不是整数,那么要各用多少位来表示红、绿、蓝呢?有的显卡是三种颜色各用5位,即0rrrrrgggggbbbbb,被称为"555"。但其它显卡用rrrrrggggggbbbbb的形式来表示这三种颜色,因为人眼对绿色更敏感,这就是"565"。所以如果你初始化时把屏幕置为16位色,填色时就不能用RGB( )了(但设置透明色时仍可),要写一段程序来判断显卡是"555"还是"565"再自己根据情况转换颜色。
      

  3.   

    谢谢各位:,那么我不防说明一下在下的用意.双缓冲的时候,建立一个内存的设备描述表CDC对象(或指针),然后在拷贝到屏幕的描述表上显示.我想完成的操作是在 一个堆上开辟一片内存,然后通过对每个结构点进行赋值,然后再拷贝到屏幕的描述表区域,然后显示.
    如果使用SetPixelV这个函数,对点进行着色,如果点很多的时候,会处理的很慢,最好是只有一次操作,然后把内存区域直接拷贝过去.这样的显示速度是不是会很快?仿佛位图被加载到内存中后,在内存中位图的每个对应屏幕象素点颜色 的信息是什么 ?
    在下只需要处理16色情况就可以了.非常感谢!因为这个问题对在下很着急.学校因为非典封校,我的电脑都在校外,每个礼拜,只有周末才能外出一段时间,所以,想明天的时候能知道答案!非常感谢,各位!
      

  4.   

    CDC对于图形图形处理的功能很弱。你的功能最好是使用DirectX的二维部分。
      

  5.   

    不是吧?我做这个东西的时候,就是想用纯CDC来处理的,而不去采用D3D或OPENGL。真的没有办法吗?
      

  6.   

    如果是在内存设备环境下调用SetPixelV(),应该对速度影响不大。
      

  7.   

    你用BitBlt一次性把内存DC拷贝到窗口DC就是了
    何苦一个点一个点的拷
      

  8.   

    但是我要着色,只能一个点一个点着色啊!
    我在用 火焰算法 做火焰文字的。对了,还碰到这样一个好不理解的问题。我定义了一个CTXTFIRE类,里面的unsigned char型的指针,在构造的时候动态开辟一片内存,
    可是删除的时候,老是提示我出错。代码如下:
    FireScreen是该类的私有成员类型unsigned char *;FireScreen=new unsigned char[FireWidth * FireHeight] ;
    该语句在构造函数里
    void CFire::FreeFire()
    {
    m_hDC=NULL; if(FireScreen !=NULL )
    delete[] FireScreen; flag=FALSE;
    }我在程序结束的时候调用freeFIRE但怎么都提示我出错!
      

  9.   

    CDC速度慢很有可能的。
    如果你非得使用CDC的话,那你可以操纵BMP位图,直接在内存上绘制位图,然后把为图绘制到CDC上
      

  10.   

    我也是这么想的,现在碰到这样一个问题:
    http://expert.csdn.net/Expert/topic/1738/1738631.xml?temp=.7843134