游戏开发论坛

 找回密码
 立即注册
搜索
查看: 9332|回复: 26

16位色全屏模式为什么能完好地显示24位BMP

[复制链接]

97

主题

590

帖子

590

积分

高级会员

Rank: 4

积分
590
QQ
发表于 2006-7-4 13:35:00 | 显示全部楼层 |阅读模式
DDRAW中设置显示模式为全屏16位色,为什么我载入24位色的图片后看起来一点都没失真啊,如果我用画图程序把24位的BMP导出为16位色的就会严重失色,16位显示模式下颜色数才65535,24位有16581375啊,怎么在16位模式中看24位图片完好无缺呢 ?
我用GetPixel取到的是类似14609491这样的24位色,而我对BUF进行alpha像素操作时,是采用565 16bits的算法,到底在BUF里的是24位色还是16位色啊

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2006-7-4 13:40:00 | 显示全部楼层

Re:16位色全屏模式为什么能完好地显示24位BMP

一般来说是不会严重失色.但如果是过滤用的多会有很多色阶,是很难看.
如果配上一些过滤算法,在较高的分辩率上也看不出来.

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20737
发表于 2006-7-4 14:13:00 | 显示全部楼层

Re:16位色全屏模式为什么能完好地显示24位BMP

可以给图片做点处理,比如滤波、抖动。

7

主题

58

帖子

58

积分

注册会员

Rank: 2

积分
58
QQ
发表于 2006-7-4 16:24:00 | 显示全部楼层

Re:16位色全屏模式为什么能完好地显示24位BMP

24位转16位 R8 G8 B8
          565:  R8>>3  G8>>2  B8>>3
就可以,当然算法有些粗糙,不过我一直这样做24位图,质量还可以,我看不出糙的感觉来,有更好算法贴个,让俺学习学习

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2006-7-4 17:02:00 | 显示全部楼层

Re: Re:16位色全屏模式为什么能完好地显示24位BMP

true_yang: Re:16位色全屏模式为什么能完好地显示24位BMP

24位转16位 R8 G8 B8
          565:  R8>>3  G8>>2  B8>>3
就可以,当然算法有些粗糙,...


这样做会有色阶,特别是在大面积过渡色的时候.

误差扩散是效果较好的,抖动速度较快.

30

主题

422

帖子

433

积分

中级会员

Rank: 3Rank: 3

积分
433
发表于 2006-7-4 19:20:00 | 显示全部楼层

Re:16位色全屏模式为什么能完好地显示24位BMP

好像各位没注意楼主的问题...

怀疑楼主确实在32位模式下

97

主题

590

帖子

590

积分

高级会员

Rank: 4

积分
590
QQ
 楼主| 发表于 2006-7-4 20:08:00 | 显示全部楼层

Re:16位色全屏模式为什么能完好地显示24位BMP

我是用16位全屏模式运行游戏的,还有楼的算法,把24位颜色转换为16位,会不失真?我用画图调色板试了下,本来很淡很亮的颜色一下子变成暗色了:
淡绿色RGB(208,248,216) r>>3,g>>2,b>>3 得到RGB(26,62,27)是墨绿色

97

主题

590

帖子

590

积分

高级会员

Rank: 4

积分
590
QQ
 楼主| 发表于 2006-7-4 20:41:00 | 显示全部楼层

Re:16位色全屏模式为什么能完好地显示24位BMP

16位极限颜色是RGB(31,63,31)可为什么在画图的调色板里,这个颜色几乎是黑的,而且RGB(0,0,0)到RGB(31,63,31)也都是黑的几乎,怎么回师泥

8

主题

239

帖子

239

积分

中级会员

Rank: 3Rank: 3

积分
239
发表于 2006-7-4 22:39:00 | 显示全部楼层

Re:16位色全屏模式为什么能完好地显示24位BMP

565 -> 888 补能直接过去,汗汗,

7

主题

58

帖子

58

积分

注册会员

Rank: 2

积分
58
QQ
发表于 2006-7-5 06:24:00 | 显示全部楼层

Re:16位色全屏模式为什么能完好地显示24位BMP

淡绿色RGB(208,248,216) r>>3,g>>2,b>>3 得到RGB(26,62,27)是墨绿色:>
/////////////////////////////////////////////////////////////////////////////////
失真没有这样大,前面的是24位RGB,后面的是16位RGB啊,您在同一位模式看不出来的.
////////////////////////////////////////////////////////////////////////////////
24位和16位rgb的对应关系不是数值对应的.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-24 21:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表