bmp图像存储是一维数组吗
答案:2 悬赏:40 手机版
解决时间 2021-02-28 18:50
- 提问者网友:放下
- 2021-02-28 08:44
bmp图像存储是一维数组吗
最佳答案
- 五星知识达人网友:woshuo
- 2021-02-28 09:23
图片是索引状态的话 现在转成灰度就可以 正常BMP灰度的话步骤是这样的:第一步将JPG转成灰度 然后另存成BMP格式的就可以了 很简单吧 祝你成功
全部回答
- 1楼网友:轮獄道
- 2021-02-28 09:39
成员变量:
bitmap m_bmp;
cbitmap m_bitmap;
读取 1.bmp 到内存:
bool cyourclassname::read1bmp()
{
hbitmap hbitmap = (hbitmap)::loadimage(null, _t("1.bmp"), image_bitmap, 0, 0, lr_loadfromfile);
if (null == hbitmap || !m_bitmap.attach(hbitmap))
{
messagebox(_t("1.bmp 读取失败。"));
return false;
}
if (!m_bitmap.getbitmap(&m_bmp) || 32 != m_bmp.bmbitspixel)
{
messagebox(_t("转成 32bit 的位图。"));
return false;
}
dword count = m_bmp.bmwidth * m_bmp.bmheight;
m_bmp.bmbits = new dword [count];
if (null == m_bmp.bmbits)
{
messagebox(_t("申请内存失败。"));
oncancel();
}
m_bitmap.getbitmapbits(count * sizeof(dword), m_bmp.bmbits);
}
这样就都在 m_bmp.bmbits 里了。
然后用这个函数读:
dword cyourclassname::getcolordword(const cpoint & point)
{
dword index = point.x * m_bmp.bmbitspixel / 8 +
point.y * m_bmp.bmwidthbytes;
dword realcolor = *reinterpret_cast((byte*)m_bmp.bmbits + index);
return realcolor;
}
估计你不会的就这些了,剩下的自己弄吧。
看着给分。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯