如何改变BMP格式文件的尺寸?急啊!!!!
就是说已知一个bmp文件尺寸为50*50;
但是我在这个位图的基础上再加一个尺寸为50*20的标题图片,这样就需要把原位图的尺寸改变,变成50*70的 bmp文件了。
这要如何实现啊?谢谢了。
就是说已知一个bmp文件尺寸为50*50;
但是我在这个位图的基础上再加一个尺寸为50*20的标题图片,这样就需要把原位图的尺寸改变,变成50*70的 bmp文件了。
这要如何实现啊?谢谢了。
吧高改成70,在吧要加的数据写在原来数据的后面或前面,可以不?
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;
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
};
但是打开方式是bmp的编辑状态,我想要“预览”的方式,怎么实现啊?谢了...