mfc中关于dib位图储存bmp文件的问题 mfc中关于dib位图储存bmp文件 谁这方面有过深入的研究的 在存储的时候要自己写个DIB类 然后在存储的时候调用这个类的 我现在遇到这个问题还不知道怎么解决的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我谷歌了 可是还不会的 那个类加到工程里面以后 在C**Dlg里面怎么调用的 我不会用的 有没有什么资料推荐下的 我有个现成的,你看下:BOOL Save(char *bmpName, BYTE *imgBuf, int width, int height, RGBQUAD *pColorTable, BYTE bitcount){ if (!imgBuf) return FALSE; int colorTablesize=0; if (bitcount==8) { colorTablesize=1024; } int lineByte=(width*bitcount/8+3)/4*4; FILE *fp=fopen(bmpName,"wb"); if (fp==0) { return FALSE; } BITMAPFILEHEADER fileHead; fileHead.bfType=0x4D42;//BMP类型 fileHead.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+colorTablesize+lineByte*height; fileHead.bfReserved1=0; fileHead.bfReserved2=0; fileHead.bfOffBits=14+40+colorTablesize; fwrite(&fileHead,sizeof(BITMAPFILEHEADER),1,fp); BITMAPINFOHEADER head; head.biBitCount=bitcount; head.biClrImportant=0; head.biClrUsed=0; head.biCompression=BI_RGB; head.biWidth=width; head.biHeight=height; head.biPlanes=1; head.biSize=40; head.biSizeImage=lineByte*height; head.biXPelsPerMeter=0; head.biYPelsPerMeter=0; fwrite(&head,sizeof(BITMAPINFOHEADER),1,fp); if (bitcount==8) { fwrite(pColorTable,sizeof(RGBQUAD),256,fp); } fwrite(imgBuf,height*lineByte,1,fp); fclose(fp); return TRUE;} 你这程序中FILE *fp=fopen(bmpName,"wb");是不是指定一个进行保存图片的文件夹吗 ?fwrite(&fileHead,sizeof(BITMAPFILEHEADER),1,fp);这句是不是将图片写到上一句的bmpName文件夹里面吗?bmpName是文件夹还应该算是bmp位图文件名呢?要是bmp位图名字的话,那该位图存储在哪个路径下来?诸多迷惑 还请多多指教 其实你说的很对 什么东西自己要是不主动去捣鼓 就算别人说的再清楚自己也不会弄明白的 但是这个我已经捣鼓了很长时间了 从一开始mfc什么都不知道 到现在都是知道怎么着手 已经实在捣鼓不出来了 才跑来问这问那的 其实 我也不想这样的 如 E:\MyFolder\MyBitMapFile.BMP这个函数是我一直在用的,没问题的 请问如何获取一个文件夹内新生成的文件名? 请教如何更好的运用directshow开发媒体播放器(在MFC的框架上) vc6高手请进!!!关于BMP图片像素点的问题 怎样将秒转换为COleDateTime格式? 请问哪里有WndTab控件的下载? 求: 如何写如下算法 有个activex的问题问问大家 高分问一个很弱的问题,寄存器分配是在编译时进行还是在链接时进行?如果在编译时进行,和其他目标文件或库文件发生寄存器冲突怎么办? The oriented edge detectors spaced at 30 【得分请进!关于文件夹属性的问题!】 文件夹个数统计 数据文件怎么打包
BOOL Save(char *bmpName, BYTE *imgBuf, int width, int height, RGBQUAD *pColorTable, BYTE bitcount)
{ if (!imgBuf)
return FALSE; int colorTablesize=0;
if (bitcount==8)
{
colorTablesize=1024;
} int lineByte=(width*bitcount/8+3)/4*4;
FILE *fp=fopen(bmpName,"wb");
if (fp==0)
{
return FALSE;
}
BITMAPFILEHEADER fileHead;
fileHead.bfType=0x4D42;//BMP类型
fileHead.bfSize=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+colorTablesize+lineByte*height;
fileHead.bfReserved1=0;
fileHead.bfReserved2=0;
fileHead.bfOffBits=14+40+colorTablesize;
fwrite(&fileHead,sizeof(BITMAPFILEHEADER),1,fp);
BITMAPINFOHEADER head;
head.biBitCount=bitcount;
head.biClrImportant=0;
head.biClrUsed=0;
head.biCompression=BI_RGB;
head.biWidth=width;
head.biHeight=height;
head.biPlanes=1;
head.biSize=40;
head.biSizeImage=lineByte*height;
head.biXPelsPerMeter=0;
head.biYPelsPerMeter=0;
fwrite(&head,sizeof(BITMAPINFOHEADER),1,fp); if (bitcount==8)
{
fwrite(pColorTable,sizeof(RGBQUAD),256,fp);
}
fwrite(imgBuf,height*lineByte,1,fp);
fclose(fp);
return TRUE;
}
fwrite(&fileHead,sizeof(BITMAPFILEHEADER),1,fp);这句是不是将图片写到上一句的bmpName文件夹里面吗?
bmpName是文件夹还应该算是bmp位图文件名呢?要是bmp位图名字的话,那该位图存储在哪个路径下来?
诸多迷惑 还请多多指教
这个函数是我一直在用的,没问题的