为什么我不能在 C++ 中用缓冲区编写 .ppm 文件

问题描述

这是代码,但出现错误,黑色图像..

FILE* fp = fopen(filename,"wb");
    //fprintf(fp,"P3\n4 4 \n255\n 168  50  50 168  50  51  168  50  51 15  0 15 0  0  0 0 15  7  255 255 255    0  0  0 0  0  0    0  0  0    0 15  7    0  0  0 15  0 15    0  0  0    0  0  0    0  0  0");
    fprintf(fp,"P3\n4 4 \n255 \n");

    unsigned char* newBuffer = (unsigned char*)malloc(4*4*3);

    int br = 0;
    for (int i = 0; i < 4 * 4; i++) {
        newBuffer[br++] = 168;
        newBuffer[br++] = 50;
        newBuffer[br++] = 50;

    }

    fwrite(newBuffer,sizeof(unsigned char),(size_t)(4*4*3),fp);
    fclose(fp);

当我使用注释行而不是 newBuffer 时,它工作得很好,我不知道在一个字符串中写入字节和用 newBuffer 写入字节时有什么区别.. 任何帮助,提前致谢..

>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)