如何在vc++中旋转位图

http://tech.ddvip.com   2006年07月17日    社区交流

本文详细介绍如何在vc++中旋转位图

  网上有很多关于位图旋转的资料,但是讲得很清楚的不多(我没有仔细查找).于是我也写了一个,希望能给向我这样的初学者一点帮助.

  第一步,你必须知道位图即BMP格式的文件的结构.

  位图(bmp)文件由以下几个部分组成:

  1.BITMAPFILEHEADER,它的定义如下:

  typedef struct tagBITMAPFILEHEADER { 
               WORD  bfType;     //必须为'BM'
               DWORD  bfSize;     //文件大小
               WORD  bfReserved1; //必须为0
               WORD  bfReserved2; //必须为0
               DWORD  bfOffBits;  //从ITMAPFILEHEADER到存放bmp数据的偏移量                 
} BITMAPFILEHEADER, *PBITMAPFILEHEADER;

  2.BITMAPINFOHEADER,它的定义如下:

  typedef struct tagBITMAPINFOHEADER{
                  DWORD biSize; //此结构的大小,可用sizeof(BITMAPINFOHEAER)得到
                  LONG  biWidth; //位图宽度,以象素为单位
                   LONG  biHeight; //位图高度,以象素为单位
                  WORD  biPlanes; //必须为1
                  WORD  biBitCount;//位图象素位数,可为0,1,4,8,24,32 
                  DWORD biCompression; 
                  DWORD biSizeImage; //(仅用于压缩)
                   LONG  biXPelsPerMeter; //一米横向象素数
                  LONG  biYPelsPerMeter; //一米纵向象素数
                   DWORD biClrUsed;// (非零用语短颜色表)
                  DWORD biClrImportant; 
            } BITMAPINFOHEADER, *PBITMAPINFOHEADER;

责编:豆豆技术应用

正在加载评论...