vc 加载bmp

有一个bmp文件我想读取到一个字段charbuf[1024*1024*3]格式如下:buf={0,0,0,..................0,0,255}3个字段为一... 有一个bmp文件 我想 读取
到一个字段 char buf[1024*1024*3]
格式如下 :

buf={0,0,0,..................0,0,255}
3个字段为一个 rgb

有方法吗? 去掉head
而且我还不清楚 0,0,0 这样表示一个矩形图里的一个点 有什么专业名词么?

c++ 刚入门 要把 进来的bmp 修改 加上logo 有会的帮下忙
像素修改的代码已经想好了 就是不知道如何 读取 bmp 你知道24位 就rgb 3字节的
我现在就想获得去掉 头部分得到 我想要的字段
展开
 我来答
焉湉湉00P
2008-10-20 · TA获得超过1856个赞
知道大有可为答主
回答量:1556
采纳率:100%
帮助的人:1367万
展开全部
要在一张BMP上加个LOGO的话建议你还是用PHOTOSHOP之类的软件加好了,自己用程序加有点麻烦;而且你还想在像素级别上修改,更加麻烦。建议你用CBitmap::LoadBitmap或LoadImage来加载一张图,然后创建一个DC,把HBITMAP选入到DC上(用SelectObject函数);你的LOGO也这么做;把LOGO的DC BitBlt到你第一个DC上就成了
===========================
嘛,很简单啊
typedef struct tagBITMAPFILEHEADER {
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER, *PBITMAPFILEHEADER;
这是BMP文件头,bfOffBits就是BMP像素数据的偏移了(相对于文件头)
你还要注意的是BMP中的数据是倒置的;也就是说一张图像的最后一行像素是存放到BMP文件的最开始的;另外BMP像素数据是按四字节对齐的
stone_dongdong
2008-10-24 · TA获得超过2853个赞
知道大有可为答主
回答量:1636
采纳率:0%
帮助的人:1004万
展开全部
使用 CBitmap 装入位图。
创建一个内存DC,选中 CBitmap。
在此内存DC上加LOGO,应该就是写字,或者覆盖一张小位图,甚至修改像素点。
万事后,再用CBitmap 把位图写回,就OK了。

直接用API函数操纵即可:
LoadImage 从文件装入位图。
CreateCompatibleDC();创建兼容内存DC
SelectObject();将装入了位图文件的 位图句柄(CBitmap->GetSafeHandle)选入内存DC,
TextOut,BitBlt 等绘图操作,可以在内存DC上加你的LOGO了,
然后再通过 SelectObject() 将内存DC和位图句柄分离。
将位图存入文件有点复杂,不过也不麻烦,网上搜方法很多。

如果想像素操作,可以不用内存句柄,直接CBitmap成员就可以读取像素缓冲区地址,这个你看看msdn上面说的比较详细了。

一边查资料,一边修改代码,学起来非常快的

祝你好运。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式