CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

急~~还是关于CBitmap

楼主lsaturn(土星-站了一晚)2003-12-03 21:48:24 在 VC/MFC / 基础类 提问

我要加3个DWORD的颜色掩码!就是怎么添加调色板啊!  
  怎么添加啊?  
  感觉CBitmap封装的实在太差了啊! 问题点数:20、回复次数:22Top

1 楼lsaturn(土星-站了一晚)回复于 2003-12-03 23:02:45 得分 0

up以下!Top

2 楼lsaturn(土星-站了一晚)回复于 2003-12-04 10:07:01 得分 0

CBitmap的CreateBitmap成员函数如下!  
  BOOL   CreateBitmap(  
        int   nWidth,  
        int   nHeight,  
        UINT   nPlanes,  
        UINT   nBitcount,  
        const   void*   lpBits    
  );  
  const   void*   lpBits   指的是什么?  
  怎么生成带调色板的CBitmap呢?Top

3 楼bluesmile979(笑着)回复于 2003-12-04 10:17:42 得分 1

CColorDialog   vc   自带的调色板,你可以调用这个来完成你的要求Top

4 楼lsaturn(土星-站了一晚)回复于 2003-12-04 10:25:32 得分 0

楼上的  
  可以说清楚一些吗?Top

5 楼csdn3141()回复于 2003-12-04 11:04:30 得分 5

同情!关注!  
  难!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  
  我这两天共发了350分的帖子就问这个问题,也没有一个高手出现!借你的宝地把我原帖沾下来:  
  (我的分用完了)  
  我想要做的是:要显示的:二值图像(大于屏幕),识别的物体轮廓线,想要根据  
  用户设置图像前景色,背景色,物体轮廓色,现已有二值图像数据Ar,识别的  
  物体轮廓线二值图像数据Ar,我的想法是:为了减少内存占用,生成16色内存  
  位图CBitmap,  
  位图每像素:00:前景色,01:背景色,02:轮廓  
  根据用户设置改变调色板00,01,02颜色值,OnDraw中拷贝到pDC,来达到改变颜色的目的,  
  可行吗?  
  如何利用二值图像阵列生成16色CBitmap?,仅仅从一个二值图像数据Ar生成16色CBitmap即可!  
  有关问题:  
  问题一:  
  CBitmap::CreateBitmap(...,调色板个数,每像素位数,数据阵列)函数参数  
  为何只有调色板个数,那么调色板阵列靠什么初始化?数据阵列是否含有调色板数据,还是只包含像素数据?  
  问题二:  
  CDC   中既有CBitmap,又有CPalette,位图本身不是含有调色板吗,CPalette  
  与位图自身的调色板有何区别?如果SelectObject一16色位图,则此DC是否  
  只能显示16色,是否只能SelectObject()16色调色板呢?  
   
  Top

6 楼lsaturn(土星-站了一晚)回复于 2003-12-04 13:23:27 得分 0

好象是不是没有人搞得懂GDI啊?  
  应该说做过的都知道啊?Top

7 楼checkyvc6(已所不欲,勿施于人)回复于 2003-12-04 14:05:47 得分 0

to   csdn3141()   :  
  我想你对dib和ddb两种类型的bmp图像没有弄清楚吗?  
  我觉得可能是你的分太少的缘故吧!Top

8 楼lsaturn(土星-站了一晚)回复于 2003-12-04 14:07:14 得分 0

分这么重要吗?问的问题不是很难吧?Top

9 楼csdn3141()回复于 2003-12-04 14:12:05 得分 0

1.如何利用一个二值图像数据阵列Ar生成16色CBitmap?  
  楼上的,清说出你如何实现????  
  或者请说明:根本实现不了????  
  到我的帖,我给分!!!!!!!!!Top

10 楼lsaturn(土星-站了一晚)回复于 2003-12-09 09:59:20 得分 0

我帮你给分:)Top

11 楼114sky(好人好报)回复于 2003-12-09 17:45:49 得分 0

upTop

12 楼glacierrr(冰河纪的怪鸟)回复于 2003-12-09 17:59:18 得分 0

就是设备有关和设备无关位图的使用了,看看msdn中dib的部分就可以了Top

13 楼lsaturn(土星-站了一晚)回复于 2003-12-12 12:20:03 得分 0

upTop

14 楼playlynx(阿土)回复于 2003-12-13 13:33:25 得分 1

upTop

15 楼weekeed(流烟飞雨)回复于 2003-12-13 16:18:19 得分 1

up!!Top

16 楼typhoon20(小黄鱼)回复于 2003-12-13 17:14:04 得分 1

我也帮你upTop

17 楼lambochan(打杂)回复于 2003-12-13 17:37:05 得分 5

CBitmap封装的是基于DDB的功能,去理解一下DDB和DIB的概念吧(包括调色板):  
  http://fjdx.fj.cninfo.net/school/bczn/vc++/chap11_1.htmTop

18 楼lsaturn(土星-站了一晚)回复于 2003-12-13 18:14:32 得分 0

好文,那么是不是CBitmap中只有信息头和文件头以及有效数据  
  调色板是利用CPalette来实现的?  
  绘制时在dc中把Palette选进?  
  那么如果我想保存一张完整的Bitmap  
  又应该怎么做?  
  我的bitmap所有都是动态生成的,而不是由LoadBitmap进来的!Top

19 楼lsaturn(土星-站了一晚)回复于 2003-12-13 18:20:47 得分 0

看了之后感觉对DDB和DIB还是没有分的十分的清楚!Top

20 楼baoyuhua(榕树)回复于 2003-12-13 18:33:56 得分 1

const   void*   lpBits   指得是位图的像素位在内存中相对于位图文件头的偏移地址,位图在内存中由文件头,信息头,以及像素位(也就是实际图像的像素)组成  
  CreateCompatibleBitmap()可生成与当前显示模式兼容的DDB,CreateBitmap()生成单色位图或用户指定格式的位图。  
  CPalette是由用户生成的逻辑调色板,可用于绘图Top

21 楼baoyuhua(榕树)回复于 2003-12-13 21:19:37 得分 5

更正:const   void*   lpBits   指向内存中像素位首地址Top

22 楼lsaturn(土星-站了一晚)回复于 2003-12-13 22:42:28 得分 0

gdi编程不简单啊!Top

相关问题

  • 怎么用ClassWizard创建派生自Cbitmap的新类,`急~~~~~~~~~~`
  • 还是stringgrid??(急)
  • 如何用GDI+编程实现CBitmap的缩放?最好有VC代码。急啊!!!
  • ×××××CBitmap::GetBitmap(...)的问题×××××××××
  • vc6.0的cbitmap基类
  • 如何生成cbitmap
  • 还是乱码问题,急急急~~~~
  • 还是那个sql查询?(急)
  • 急啊 !!! php还是asp?
  • 能还是不能?急等!

关键词

  • 图像
  • 阵列
  • 像素
  • 数据
  • 内存
  • 物体
  • 文件
  • 用户
  • 调色板
  • cbitmap

得分解答快速导航

  • 帖主:lsaturn
  • bluesmile979
  • csdn3141
  • playlynx
  • weekeed
  • typhoon20
  • lambochan
  • baoyuhua
  • baoyuhua

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo