【问题标题】:C++: copying bmp using loop of fread and fwrite, casues output bmp is filled with color of the fisrt one in input bmpC++:使用 fread 和 fwrite 循环复制 bmp,导致输出 bmp 填充输入 bmp 中第一个颜色
【发布时间】:2009-12-10 21:28:48
【问题描述】:

我不知道为什么,但第一个像素(左下角)加载正确,但其他像素不会加载,第一个颜色用于整个图片...

我有这个循环

fread(&pix,sizeof(pix),1,pictureIn);
fwrite(&pix,sizeof(pix),1,pictureOut);

编辑:

pix 是三个无符号字符(rgb)的结构,加载文件和信息头似乎没问题

【问题讨论】:

  • 您没有提供足够的信息。什么是像素?你怎么知道大小?
  • 您是否真的检查了返回值,以便判断是否出现问题?
  • 大概你打开了一个文件?你是怎么做到的?例如,您是否以二进制模式打开它?这是一个循环吗?你明白了——我们不是读心术的人。

标签: fread bmp fwrite


【解决方案1】:

您使用的是什么操作系统?我最近在 Win32 下读取二进制文件时遇到问题。原来我忘了给fopen传“b”标志:

pictureIn = fopen ("in.bmp", "rb");
pictureOut = fopen ("out.bmp", "wb");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 2019-08-10
    • 1970-01-01
    相关资源
    最近更新 更多