保存位图位图保存时上下颠倒?

文章结束给大家来个程序员笑话:[M]

    位图取读时,一般都是

for(GLint j=0; j< pThis->m_nHeight-1; j++)
   {
	for(GLint k=0; k< pThis->m_nWidth-1; k++)
         {
                     pixels[i][j]= pf[m_nWidth*j+k]   //pf 是向指素像开始的指针
         }
     }

 

    但是在保存时,应当是

for(int i=0 ;i<m_nHeight;i++)
	{
		for(int j=0;j<nByteWidth;j++)
		{
                   // p[0]=BYTE(pixels[i][j])
                 p[0]=BYTE(pixels[m_nHeight-1-i][j])
                }
     }

    即保存时,不能是
p[0]=BYTE(pixels[i][j]),
因为位图格式所划定的式方存贮的录记序顺是在描扫行内从左到右,描扫行间是从下到上。
否则最后保存的位图与际实位图是呈上下颠倒的关系。
另外,注意,在保存时,应当按照nByteWidth来,超越的,应当补填为0.最后准确的保存代码如下:

for(int i=0 ;i<m_nHeight;i++)
	{
		for(int j=0;j<nByteWidth;j++)
		{
			p=m_lpBits+nByteWidth*i+j;
			if(j>m_nWidth)
				p[0]=0;
			else	
               	p[0]=BYTE(pixels[m_nHeight-i-1][j]); 
}
    每日一道理
航行者把树比作指引方向的路灯,劳动者把树比作遮风挡雨的雨伞,诗人把树比作笔下的精灵,而我却要把树比作教师,它就是为我们遮风挡雨的伞,指明方向的路灯,打开知识殿堂的金钥匙。
 
 
  
 
 

    

    

    

0
0

文章结束给大家分享下程序员的一些笑话语录: 女人篇
  有的女人就是Windows虽然很优秀,但是安全隐患太大。
  有的女人就是MFC她条件很好,然而不是谁都能玩的起。
  有的女人就是C#长的很漂亮,但是家务活不行。
  有的女人就是C++,她会默默的为你做很多的事情。
  有的女人就是汇编虽然很麻烦,但是有的时候还得求它。
  有的女人就是SQL,她会为你的发展带来莫大的帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值