用c++实现图像的高度和宽度
Height and Width of Image using C++
是否有一种方法可以通过头文件或其他方式从*.bmp文件中找到高度和宽度?我目前使用的是Visual Studio 2010。我知道头文件是54字节。
我现在有这个:
ifstream image;
image.open("image.bmp",std::ios_base::binary);
if (image.is_open())
{
cout<< "function successn";
}
else
{
cout<< "unable to open file";
}
//get length of file:
image.seekg(0, image.end);
int n = image.tellg();
image.seekg (0, image.beg);
//allocate memory:
char* res = new char[n];
//read data as a block:
image.read(res, n);
是否有一种方法可以通过循环提取相关信息?如果可以的话,我希望能举个例子。
BMP文件的BITMAPFILEHEADER后面紧跟着BITMAPINFOHEADER或BITMAPCOREINFO。
后两者包含位图的高度/宽度。
如果你想在Windows中这样做,我会使用Windows .h中那些结构的定义。如果你在Linux或其他地方做,你可以使用MSDN中的定义(并确保设置编译器以确保结构的字段之间没有打包)。
有了它,您可以读取结构,并读出您关心的部分。我想你可以找到正确的偏移量,然后从那里读取正确的字节数,但我要读取整个结构体。这很简单,而且无论哪种方式,您都将读取一个磁盘扇区,因此您不太可能获得速度或类似的东西。
相关文章:
- C++:如何根据地形高度更新玩家身高?
- 如何更改QComboBox项目的高度大小?
- 更改高度贴图,使其在 4x4 网格上显示 16 个 hieghtmap
- 我试图用这段代码找到二叉树的高度,但它一直返回 0,有人可以告诉我为什么吗?
- C++:如何计算二叉树中其值模块高度小于 2 的节点数?
- 如何使用 C++ gdal 库将栅格地理从 EGM96 转换为 WGS84 椭球体高度基准面
- 从具有父指针和左子树和右子树高度的树中删除
- 程序输入名称和高度并显示它。我不知道如何显示列表中最高人的姓名和身高
- 我正在尝试创建一个 C++ 贪吃蛇游戏,但我似乎无法绘制第二个高度边框,我该如何解决这个问题?
- 计算树高度的函数
- 尝试创建一个程序来查找非二叉树的高度.最终得到一个很长的循环,没有答案
- 计算BST返回-1的高度混淆
- 使用递归计算一个函数中的高度和大小
- 如何从2D数组为QHeightMapSurfaceDataProxy创建高度图以显示2D傅立叶变换结果
- 接受来自键盘的树节点以确定其高度
- 在 C++ 中使用平展数组语法,崩溃取决于宽度/高度
- 在一行中初始化指针(新uint8_t[高度*宽度*3])
- 在高度模板化的库中进行代码混淆
- ID3DXFont :文本被拉伸,如何获取字体的宽度和高度?
- C ,二进制树的高度,而不是检查我的子树是否为空,而是在检查我的子树是否是叶子节点.抛出分割故障