社区
机器视觉
帖子详情
请问DDB和DIB各自的用途、用法,区别与联系?
sleepingboy
2003-05-06 08:29:07
有没有详尽而又准确的教程?中文最好,英文也行。
我看书是越看越乱了。
HBITMAP,BITMAP都是干什么的?
装载一个.bmp文件是怎么一回事?
好多概念一点都不清晰,不知如何入手了。
...全文
112
8
打赏
收藏
请问DDB和DIB各自的用途、用法,区别与联系?
有没有详尽而又准确的教程?中文最好,英文也行。 我看书是越看越乱了。 HBITMAP,BITMAP都是干什么的? 装载一个.bmp文件是怎么一回事? 好多概念一点都不清晰,不知如何入手了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sleepingboy
2003-05-08
打赏
举报
回复
下午找到了。
呵呵。
starkey
2003-05-07
打赏
举报
回复
GDI位图对象是由MFC库CBitmap类表示的。GDI位图对象有一个与之关联的Windows数据结构,它在Windows GDI模块中进行维护,是设备相关的。程序可以获得位图数据的副本,但是其中位的排列则取决于显示硬件。在同一台机器中,GDI位图可以在各个程序之间任意进行传输,但是,由于是设备相关的,所以通过磁盘来传输就没什么意义了。
DIB是设备无关的,它带有自己的颜色信息,所以,调色板管理起来更容易。运行Windows的任何机器都可以处理DIB,通常存储在BMP文件之中。
GDI位图只是另一个GDI对象,例如笔和字体。你必须先创建一个位图然后将它选入设备环境。
使用GDI最简单的方法是从资源中加载它。
LoadBitmap负责将一个基于资源的DIB位图转换为GDI位图。
HBITMAP是个位图句柄,好像是LoadImage的返回类型,BITMAP是个结构,包含了一些位图信息,例如长宽之类的。
对于DIB,MFC没有提供处理的类,不过好多书上多有这种DIB类,大同小异。
个人的一些经验,GDI处理图像不太方便,好像也就是显示之类的。
一般处理图像,例如对图像进行一些变换,用的都是DIB,从一本书上copy DIB类,添加到工程中,然后可以随意对图像进行处理了。
sleepingboy
2003-05-07
打赏
举报
回复
《programming windows》?
Charles Petzold的那本?
广州哪里能买到?
wangxil
2003-05-07
打赏
举报
回复
补充一句:该书分上下册,下册用了好几章讲这个问题
wangxil
2003-05-07
打赏
举报
回复
《windows程序设计》这本书讲很清楚
starkey
2003-05-07
打赏
举报
回复
我上面说DIB通常都是BMP格式,其实,你硬盘上所有的图片都是设备无关位图。只不过BMP是最简单和最常用的。
以BMP来说,虽然有8色、16色、256色、16位、24位、32位,但格式是一样的,这你可以看一下BMP的结构就知道了,只不过调色板不同,或根本不用调色板。
前面说过设备相关位图只是另一个GDI的对象,GDI是图形设备接口。
个人理解DDB和DIB并不是格式上的区别,而是概念上的区别。
举例来说,你在资源里加载一个bmp文件,这是个设备无关位图,LoadBitmap把它转换为一个设备相关位图,其做的工作,个人认为是创建了一个Windows数据结构,也就是CBitmap(这个结构是和设备相关的),然后把这个结构选入到GDI对象中。
看个实例:
CView::OnDraw(CDC* pDC)
{
CBitmap bitmap;
CDC dcMem;
bitmap.LoadBitmap("XXX");//XXX是*.bmp在资源中的名字
dcMem.CreateCompatibleDC(pDC);
dcMem.SelectObject(&bitmap);
.....
}
设备无关位图通常是作为另一个GDI的对象,如笔,刷之类,或选入CDC用于显示。
如果你把CBitmap这个结构copy到别的机器上去的话是没有意义的。也就是设备相关。
全是个人理解,不对莫怪哦。
sleepingboy
2003-05-07
打赏
举报
回复
DIB有8色、16色、256色、16位、24位、32位多种。
它们的文件格式都有多少种可能?
装载转换成DDB之后是什么样子的?
这个设备有关,
那么不同设备下分别是怎样的?
whatkindu
2003-05-06
打赏
举报
回复
我也很想知道啊,帮你UP下吧。
数据库技术实战线上峰会视频
数据库作为关键的基础设施,渗透技术领域的方方面面。本次数据库技术实战视频教程内容涵盖了mysql/tdsql事务处理技术、PostgreSQL流计算案例、
DDB
进化论,从数据库到数据中心、Mysql高可用运营、微博热点事件背后的数据库运维心得、Kubernetes存储技术分享及数据库场景下的应用,数据仓库与HDFS列存储技术。
DDB
和
DIB
的
区别
一直没有搞清过这两者的
区别
.所以转载此片文章记录下.http://blog.csdn.net/Jiao2_vc/archive/2008/12/17/3539398.aspx 依赖于设备的位图(
DDB
)
DDB
(Device-dependent bitmap)依赖于具体设备,这主要体现在以下两个方面:
DDB
的颜色模式必需与输出设备相一致。例如,如果当前的显示设备是256色模
MFC绘图必知
DDB
与
DIB
的
区别
DDB
与
DIB
的
区别
(转载):
DDB
(设备相关位图)
DDB
依赖于具体设备:
DDB
的颜色模式必需与输出设备相一致。例如,如果当前的显示设备是256色模式,那么
DDB
必然也是256色的。 在256色以下的位图中存储的像素值是系统调色板的索引,其颜色依赖于系统调色板。 由于
DDB
高度依赖输出设备,所以
DDB
只能存在于内存中,它要么在视频内存中,要么在系统内存中
DIB
的与设
DDB
与
DIB
的
区别
2
依赖于设备的位图(
DDB
)
DDB
(Device-dependent bitmap)依赖于具体设备,这主要体现在以下两个方面:
DDB
的颜色模式必需与输出设备相一致。例如,如果当前的显示设备是256色模式,那么
DDB
必然也是256色的,即一个像素用一个字节表示。在256色以下的位图中
DDB
与
DIB
依赖于设备的位图(
DDB
)
DDB
(Device-dependent bitmap)依赖于具体设备,这主要体现在以下两个方面:
DDB
的颜色模式必需与输出设备相一致。例如,如果当前的显示设备是256色模式,那么
DDB
必然也是256色的,即一个像素用一个字节表示。在256色以下的位图中存储的像素值是系统调色板的索引,其颜色依赖于系统调色板由于
DDB
高度依赖输出设备
机器视觉
4,445
社区成员
15,335
社区内容
发帖
与我相关
我的任务
机器视觉
图形图像/机器视觉
复制链接
扫一扫
分享
社区描述
图形图像/机器视觉
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章