打印

创建BMp文件时的问题,请教高手

[复制链接]
1839|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
newdsd|  楼主 | 2007-6-8 10:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
8bit灰度图,写入色彩表的时候,总是会在第0x0A个色彩数据处写入0x0D:
本来是0x0A 0x0A 0x0A 0x00数据,它总是给我写成是0x0D 0x0A 0x0D 0x0A 0x0D 0x0A 0x00,活生生的给我加了3个byte,请问原因或解决方法?

    FILE *pFile=fopen("open.bmp","a");//打开文件
    fwrite(PBITMAPFILEHEADER,1,14,pFile);//写入文件头
//    fflush(pFile);
    fwrite(PBITMAPINFOHEADER,1,40,pFile);//写入信息头
//    fflush(pFile);
    fwrite(PixelCol,4,256,pFile);//写入彩色表
//    fflush(pFile);
    fwrite(PicData,640,480,pFile);//写入图片数据
    fclose(pFile);//结束文件

相关帖子

沙发
newdsd|  楼主 | 2007-6-8 10:36 | 只看该作者

忘了说了

编译环境VC++6.0,MFC框架程序

使用特权

评论回复
板凳
平常人| | 2007-6-8 22:37 | 只看该作者

要用二进制类型打开文件,不能用文本类型

fopen的第二个参数mode要用b而不能用t,具体用法查查文档吧,我也记不清了。

或者用OpenFile, ReadFile, WriteFile;

再简单点用open,read, write

当然CFile最省事!

使用特权

评论回复
地板
high| | 2007-6-8 22:48 | 只看该作者

自动补齐回车换行

恰好0d 0a.
该是有些系统会这样,有些不会。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

34

帖子

1

粉丝