如何改变BMP格式文件的尺寸?急啊!!!!
就是说已知一个bmp文件尺寸为50*50;
但是我在这个位图的基础上再加一个尺寸为50*20的标题图片,这样就需要把原位图的尺寸改变,变成50*70的 bmp文件了。
这要如何实现啊?谢谢了。

解决方案 »

  1.   

    你先定义一个50*70的bmp,然后用两次bitblt进行组合,注意指定好坐标。
      

  2.   

     bmp文件头里面有位图的宽和高参数,
    吧高改成70,在吧要加的数据写在原来数据的后面或前面,可以不?
      

  3.   

    你新建一个50*70的bmp把两个bmp bitblt到这个新建的bmp不就可以了吗? 
      

  4.   

    BMP里面有宽高的信息,把他改为50*70,然后把他的点阵信息也改了,改成你要的。就OK了
      

  5.   

    我还是不明白,就是说我现在已经有一个50*50的bmp图片了,在程序里用CDC又画了一个图片,想把这个图片加载到原位图的上面,怎么实现啊?各朋友能否说仔细点,谢谢了。
      

  6.   

    以下是新建一个bmp,以及初始化位图信息:
        BITMAPINFO   bi;//信息头 

    //定义图片的大小
    int nWidth = 50;
    int nHeight= 70;
    //填充信息头 
    ZeroMemory(&bi,sizeof(bi)); 
    bi.bmiHeader.biSize=sizeof(bi.bmiHeader); 
    bi.bmiHeader.biHeight=nHeight; 
    bi.bmiHeader.biWidth=nWidth; 
    bi.bmiHeader.biPlanes=1; 
    bi.bmiHeader.biBitCount=24; 
    bi.bmiHeader.biCompression=BI_RGB; 
    bi.bmiHeader.biSizeImage=3*nWidth*nHeight; 
      

  7.   

    2楼的说的不错,
    lz你知道bmp文件的结构吧!!
    首先你要修改bmp头中的相关信息,
    然后将数据加到bmp文件的数据部分就可以啦!!bmp头的结构!!
    Bmp_Head { 
    char Bmp_Id[2]; //文件标识必须是 "BM" 
    unsigned long File_Size; //文件长度 
    unsigned long Reserved1; //必须是0L 
    unsigned long Img_Off; //图像数据的偏移量, 必须是0x92 
    unsigned long Head_Size; //文件头长度, 必须是0x7c 
    unsigned long Img_Width; //图像数据每行的点数(宽度) 
    unsigned long Img_Height; //图像数据的行数(高度) 
    unsigned int16 Planes; //调色板数,必须是1 
    unsigned int16 BitCount; //每点所占的bit数,必须是 1 
    char Reserved2[112]; //必须是0 
    unsigned long Reserved3; //必须是 0x00FFFFFF 
    };
      

  8.   

    谢谢各位了,还有个问题要请教一下:)我是用ShellExecute(NULL,NULL,"my.bmp",NULL,"C:\\",SW_SHOW)打开my.bmp文件。
    但是打开方式是bmp的编辑状态,我想要“预览”的方式,怎么实现啊?谢了...
      

  9.   

    ShellExecute(NULL,NULL, "my.bmp ",NULL, "C:\\ ",SW_SHOW)这样调用是调用默认的方法打开bmp
      

  10.   

    如果我想用“Windows图片和传真查看器”的方式打开一个bmp文件,怎么实现啊?
      

  11.   

    WinExec("rundll32.exe c:\\windows\\system32\\shimgvw.dll,ImageView_Fullscreen D:\\1.jpg", SW_SHOW);