首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >要传递给CreateDIBSection函数的参数

要传递给CreateDIBSection函数的参数
EN

Stack Overflow用户
提问于 2013-02-01 17:17:58
回答 1查看 311关注 0票数 0

我有一个彩色图像,行数为479,列数为638。我正在尝试将此图像另存为BMP文件。为此,我首先使用CreateDIBSection,然后使用CreateDIBitmap。对于CreateDIBSection,我需要将BITMAPINFOHEADER传递给函数。这里它有两个参数biWidthbiSizeImage。由于函数返回的内存应该是双字对齐的,并且638不是4的倍数,我应该传递638或640作为宽度吗?假设我传递638作为宽度,函数返回的内存是638x479还是640x479?我的观察是它是640x479。在这种情况下,当我将文件保存为BMP时,每行的末尾会出现一条2像素宽的黑线。我该如何避免这种情况?我将biCompression作为BI_RGB传递,如果这很重要的话。

EN

回答 1

Stack Overflow用户

发布于 2013-02-01 23:14:51

您应该将实际宽度作为位图宽度进行传递。然而,扫描线/步幅必须是双字对齐的。这意味着在计算步长和内存缓冲区大小时,每行最多添加3个字节。

请注意,数据的实际宽度取决于每像素的位数。如果您使用的是32位像素,那么它已经正确对齐了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14643020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档