游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2791|回复: 3

关于在VC++6.0里载入bmp图的问题~

[复制链接]

1

主题

21

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2004-5-11 22:08:00 | 显示全部楼层 |阅读模式
  我自己写了一个载入bmp图形(24位)的函数,可是每次运行以后,只有画面上方的一部分有画面,其他部分均为灰色.
  开始的时候,我以为是我的显示图形的函数写错了,可是仔细检查以后,发现更本没有毛病.在一次偶然的机会下,我换了一个函数来读取bmp文件的数据区,结果就能正常显示了.如下:
   刚开始的时候使用的函数:
      BMPPIC bitmap;
____________________________   
   //BMPPIC是自己定义的结构
   typedef struct BMPPIC_TAG
        {
        BITMAPFILEHEADER    bitmapfileheader;  //文件头
     BITMAPINFOHEADER    bitmapinfoheader;  //头信息
        UCHAR            *buffer;      
        } BMPPIC, *BMP_FILE;
_____________________________
   
   infile.read(reinterpret_cast<char*>(&bitmap>bitmapfileheader),
                sizeof(BITMAPFILEHEADER));
   ...............
   infile.read(reinterpret_cast<char*>(&bitmap->bitmapinfoheader),
                sizeof(BITMAPINFOHEADER));
         ...............
        //好象问题就出在这里.
         infile.read(bitmap->buffer,bitmap->bitmapinfoheader.biSizeImage);
   然后显示画面______(结果就像我开头说的那样)


   后来我使用的函数:       
   _lread(file_handle, &bitmap->bitmapfileheader,
                sizeof(BITMAPFILEHEADER));
   ..................
   _lread(file_handle, &bitmap->bitmapinfoheader,
                sizeof(BITMAPINFOHEADER));
   ..................
   _lread(file_handle,bitmap->buffer,
                        bitmap->bitmapinfoheader.biSizeImage);
   接着显示画面,正常!
    
   请问,问题是出在哪里呢?望知道的朋友不吝指教啊!
   

30

主题

298

帖子

299

积分

中级会员

Rank: 3Rank: 3

积分
299
QQ
发表于 2004-5-11 22:17:00 | 显示全部楼层

Re:关于在VC++6.0里载入bmp图的问题~

BMP的数据是按从最后一行到第一行的顺序来存放的。没有看到你完整的读取代码,只能猜测是这个原因。

16

主题

158

帖子

168

积分

注册会员

Rank: 2

积分
168
发表于 2004-5-11 23:32:00 | 显示全部楼层

Re:关于在VC++6.0里载入bmp图的问题~

24位bmp图形没必要这么做

1

主题

21

帖子

21

积分

注册会员

Rank: 2

积分
21
 楼主| 发表于 2004-5-11 23:50:00 | 显示全部楼层

Re: Re:关于在VC++6.0里载入bmp图的问题~

    虽然bmp的数据是反向存放的,但是函数infile.read(bitmap->buffer,
bitmap->BITMAPINFOHEADER.bitSizeImage)也是反向存放数据吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-30 21:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表