如何在C++中将 BMP 移动到数组中

how to move bmp into array in C++

本文关键字:移动 数组 BMP 中将 C++      更新时间:2023-10-16

首先,我是c/c ++的新手,对你来说可能回答我的问题非常简单。

我必须将数据从单色.bmp(扫描的元素的 2D 形状)移动到布尔数组(0 - 白色,1 - 黑色)。我找到了这张图:将 1 位 bmp 文件转换为 C/C++ 中的数组

我必须做同样的事情,但这段代码是 C 的,我需要在C++中完成,所以我必须如何更改它才能在C++中工作?(我正在使用VSexpress 2010)

编辑 1:此 BMP 是 144x320 像素

编辑2:我看到没有 你甚至看代码,指针有问题错误 C2440:"正在初始化":无法从"void *"转换为"无符号字符"1> 从"void"到指向非"void"的指针需要显式强制转换它符合: 无符号字符 *img = malloc(w * h), *data = malloc(fileSize);

我认为 C 代码大部分都可以在 C++ 中工作,无需任何修改,考虑到所使用的函数很常见。您可以将文件操作更改为使用 fstream ,但使用 fopen 和 C 函数也应该有效。

你链接到的 C 代码应该像 C++ 一样工作 - 后者是前者的超集。您当然可以将 C 代码迁移到C++习语(使用 STL 等),但我建议不要这样做。

但请注意,如果所述代码无法编译,可能是因为您的C++编译器要求高标准的尊重,因此(请参阅此处的原因)"#include "应替换为"#include ","#include "替换为"#include ","#include "应替换为"#include "。