e_Boris 、IDDIALOG、foxmail(萧遥) 、romanticist 、c0der() 、farfh(慕容长风) 青筋!讨论Window系统下 8Bit(256色)/16bit(增强色)/真

New_bug 2003-08-01 09:27:53
感谢大家在
如何置换bitmap背景色?
如何将RGB颜色(24Bits)转换为16Bits的颜色?
中的解答。
现在想请大家就
Window系统下 8Bit(256色)/16bit(增强色)/真彩色(32bit) 下
对于同一位图
CBitmap::GetBitmapBits(dwCount,lpBits);中lpBits数据如何相应变化进行解疑,谢谢?
...全文
77 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanderman 2003-08-09
  • 打赏
  • 举报
回复
哈哈
foxmail 2003-08-07
  • 打赏
  • 举报
回复
是有一点,上次的主页别人也说象女生做的
晕阿
andrew_var 2003-08-07
  • 打赏
  • 举报
回复
借问一句:为什么要得到DDB的图像数据必须复制出来?

有没有方法不用GetBitmapBits(),而能够直接得到DDB图像数据的地址然后直接做操作的?
因为GetBitmapBits()太耗时了,800*600*32bit的图像,在我的机器上需要300ms!!
New_bug 2003-08-07
  • 打赏
  • 举报
回复
to farfh(慕容长风)
长风兄,你说是不是?:)
New_bug 2003-08-07
  • 打赏
  • 举报
回复
to foxmail(萧遥) :
晕是因为脂粉气太重!
farfh 2003-08-06
  • 打赏
  • 举报
回复
好看是好看,只是感觉页面有点空洞,一种感觉吧
foxmail 2003-08-05
  • 打赏
  • 举报
回复
性感吗
感性吧
没办法
做不成她的老公
只有这样寄托自己的情感

ps:是不是很多人找不到左边的菜单阿?
foxmail 2003-08-05
  • 打赏
  • 举报
回复
多谢提意见
为什么阿
太大了吗
New_bug 2003-08-05
  • 打赏
  • 举报
回复
to foxmail(萧遥) :
斑竹啊,你是不是在准备讨好老婆的礼物啊,主页怎么这么"性感"?
New_bug 2003-08-05
  • 打赏
  • 举报
回复
to foxmail(萧遥) :
不是啊,左边的旋转菜单很好找的啊,就是看到右边的图片有点晕!
foxmail 2003-08-05
  • 打赏
  • 举报
回复
我是说我主页上右键菜单和左边的旋转菜单
farfh 2003-08-05
  • 打赏
  • 举报
回复
楼主对颜色转换很感兴趣啊,天天见你转来转去的,俺啥都不会,就会用控件和类:)
(悲哀啊,学了两三年的vc了)
farfh 2003-08-05
  • 打赏
  • 举报
回复
哪儿有菜单啊?
foxmail 2003-08-04
  • 打赏
  • 举报
回复
呵呵
最近在忙着做新主页阿-> http://www.LoveSnow.com
所以。。。
而且现在一般有人回答的帖子我不回答
专门挑没人回答的帖子
结果发现:很难,不会回答:P



wrcluomo 2003-08-04
  • 打赏
  • 举报
回复
我到现在才发现foxmail(萧遥) 是版主呀。
c0der 2003-08-04
  • 打赏
  • 举报
回复
会不会是555格式,而不是565格式造成的呢?
c0der 2003-08-04
  • 打赏
  • 举报
回复
用GetDIBits得到的是否跟CBitmap::GetBitmapBit得到的一致?
New_bug 2003-08-04
  • 打赏
  • 举报
回复
像这样我得到了三种情况下的字节分配。按照e_Boris所言,8bit情况
是其值是该pixel的颜色的在位图所带的调色板的index。
16bits的情况我也已经清楚,但是现在的问题是如何将一个RGB的颜色值对应到8Bits下调色板上的index,又如何将RGB的一个颜色值对应成一个16bits的颜色值?

c0der 兄曾在我的另一贴http://expert.csdn.net/Expert/topic/2085/2085688.xml?temp=.4903986指出了转换关系:
//转换关系24-〉16
5BitRed=8BitRed>>3; //除以8
6BitGreen=8BitGreen>>2; //除以4
5BitBlue=8BitBlue>>3; //除以8
Color=5BitBlue+(6BitGreen<<5)+(5BitRed<<11) //颜色值
但是我从CBitmap::GetBitmapBit获得的数据好像与转换后的数据不吻合。请c0der 兄和知情的兄弟们发表看法],谢谢
New_bug 2003-08-04
  • 打赏
  • 举报
回复
大家来得不晚!多谢关照:)
HDC hdc = GetDC(GetDesktopWindow());
PIXELFORMATDESCRIPTOR pfd;
int iPixelFormat = 1;

// obtain detailed information about
// the device context's first pixel format
DescribePixelFormat(hdc, iPixelFormat,sizeof(PIXELFORMATDESCRIPTOR), &pfd);
//16 bits //32bits //8Bits
BYTE bPixelType = pfd.iPixelType; //0 //0 //0
BYTE bColorBits = pfd.cColorBits; //16 //32 //8
BYTE bRedBits = pfd.cRedBits; //5 //8 //3
BYTE bRedShift = pfd.cRedShift; //11 //16 //0
BYTE bGreenBits = pfd.cGreenBits; //6 //8 //3
BYTE bGreenShift = pfd.cGreenShift; //5 //8 //3
BYTE bBlueBits = pfd.cBlueBits; //5 //8 //2
BYTE bBlueShift = pfd.cBlueShift; //0 //0 //6
BYTE bAlphaBits = pfd.cAlphaBits; //0 //8 //0
BYTE bAlphaShift = pfd.cAlphaShift; //0 //24 //0

BYTE bAccumBits = pfd.cAccumBits; //64 //64 //32
BYTE bAccumRedBits = pfd.cAccumRedBits; //16 //16 //11
BYTE bAccumGreenBits = pfd.cAccumGreenBits; //16 //16 //11
BYTE bAccumBlueBits = pfd.cAccumBlueBits; //16 //16 //10
BYTE bAccumAlphaBits = pfd.cAccumAlphaBits; //16 //16 //0
BYTE bDepthBits = pfd.cDepthBits; //16 //16 //32
BYTE bStencilBits = pfd.cStencilBits; //0 //0 //8
BYTE bAuxBuffers = pfd.cAuxBuffers; //0 //0 //0
BYTE biLayerType = pfd.iLayerType; //0 //0 //0
BYTE bReserved = pfd.bReserved; //0 //0 //0

WORD nwSize = pfd.nSize; //40 //40 //40
WORD nwVersion = pfd.nVersion; //1 //1 //1
DWORD ndwFlag = pfd.dwFlags; //52 //52 //252
DWORD ndwLMask = pfd.dwLayerMask; //0 //0 //0
DWORD ndwVMask = pfd.dwVisibleMask; //0 //0 //0
DWORD ndwDMask = pfd.dwDamageMask; //0 //0 //0
wrcluomo 2003-08-04
  • 打赏
  • 举报
回复
以前老见遥啊遥的,谁知道你是斑主呀。有时我还想:这斑主怎么老不见回答问题呀。我一般只看括号里面的名称。今天偶看了一下英文,嘿,和上面第二个英文一样,原来遥就是斑呀。
加载更多回复(14)

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧