中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-01 20:04
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 请问如何使用尽量少的颜色表现尽量好的效果, 有无这方面的 查看 4,294 回复 38
16 发表于 2006-05-16 01:53 ·  中国 浙江 宁波 电信
初级用户
积分 96
发帖 32
注册 2006-04-15 16:03
20年会员
UID 53877
状态 离线
有谁能在介绍一点吗〉〉??最好有个资料!!!
17 发表于 2006-05-17 00:05 ·  中国 上海 杨浦区 电信
高级用户
★★
积分 653
发帖 252
注册 2006-04-16 19:48
20年会员
UID 53939
状态 离线
Originally posted by jawbin at 2006-5-15 08:41:
谢谢 asbai, 我以前听说过丝网印刷这个名词,不知和网点抖动有否什么关系
我找找看能不能找到一个网点抖动的软件
"真正"的灰度还是占调色杠...


像Corel Paint、PhotoShop等等图像处理软件里都有这种抖动方法。但为屏幕显示优化的图像里基本不会用这个,屏幕的DPI太低了,除非站到10米以外,否则这种抖动无法欺骗肉眼,人看着会很不舒服。一般屏幕还是用误差分散算法的抖动。

付件是典型的网纹抖动,其实杂志上的照片也是用也是这样印刷出来的,只不过印刷机的DPI一般超过2000,肉眼看不出这种pattern。一般显示器的DPI在72~96之间。
附件
Clipboard01.png
18 发表于 2006-05-17 08:10 ·  中国 湖北 荆州 电信
高级用户
★★★
积分 994
发帖 444
注册 2005-01-29 00:00
21年会员
UID 35779
性别 男
状态 离线
先谢谢 asbai!
"除非站到10米以外,否则这种抖动无法欺骗肉眼,人看着会很不舒服。"
但是我认为,有总比没有好,另外,日本游戏画面是怎么处理出来的呢?
另外请问这是什么软件啊, 我对图象处理软件不熟
还有,这里的颜色好象是 256 色的, 而且那里是灰的, 所以无法选为 16 色?

[ Last edited by jawbin on 2006-5-17 at 09:01 ]
19 发表于 2006-05-17 11:25 ·  中国 上海 杨浦区 电信
高级用户
★★
积分 653
发帖 252
注册 2006-04-16 19:48
20年会员
UID 53939
状态 离线
先谢谢 asbai!
■ 不客气 ^^

"除非站到10米以外,否则这种抖动无法欺骗肉眼,人看着会很不舒服。"
但是我认为,有总比没有好,另外,日本游戏画面是怎么处理出来的呢?
■ 偶不是说了更好的抖动方式是误差分散~,而且日本游戏里用的不是标准VGA调色板,而是每幅都用了优化的自定义调色板

另外请问这是什么软件啊, 我对图象处理软件不熟
■ Corel PAINT,是为了给你演示网纹抖动。如果使用推荐的误差分散抖动+优化的自定义调色板的转换,任何流行的图像处理和浏览软件都能完成,比如:IrfanView、ACDSee、XnView。。。

还有,这里的颜色好象是 256 色的, 而且那里是灰的, 所以无法选为 16 色?
■ 是的,不过是是用的Windows标准(而非自定义优化)256色模板,效果根使用优化的16色模板大致相当。
■ 可以选16色(或者任何颜色)的调色板,但要切换到别的palette模式先~

BTW:拜托兄台,偶从一开始就推荐你用误差分散抖动+优化的自定义调色板,说的俺口好干啊~ 这次换了一种回复形式,希望兄台能看的真切~~

[ Last edited by asbai on 2006-5-17 at 11:27 ]
20 发表于 2006-05-17 12:05 ·  中国 浙江 宁波 电信
初级用户
积分 96
发帖 32
注册 2006-04-15 16:03
20年会员
UID 53877
状态 离线
推荐你用误差分散抖动+优化的自定义调色板
能解释一下吗???
或者说一下误差分散的原理,
谢谢了
21 发表于 2006-05-17 16:37 ·  中国 湖北 荆州 电信
高级用户
★★★
积分 994
发帖 444
注册 2005-01-29 00:00
21年会员
UID 35779
性别 男
状态 离线
误差扩散?好象比较常见...但是具体能做好的..
22 发表于 2006-05-17 17:16 ·  中国 上海 杨浦区 电信
高级用户
★★
积分 653
发帖 252
注册 2006-04-16 19:48
20年会员
UID 53939
状态 离线
在屏幕上远远好于网纹效果,要配合自定义的优化调色板。如果觉得效果不够好,可以用Photoshop、Corel PAINT等专业工具手工调整(看到上面那幅图里的很多选项了吧?^^)。

另外,对颜色数过于丰富的图片,要先用阀值或者gamma曲线降低一下发色数。像付件就是调整过gamma以后在做的16色优化抖动。

背景还是有点颗粒状是因为这副是工笔画,墨的色彩过度十分丰富,日本游戏做画的时候就是用大块纯色为背景和几乎不会产生晕化层次(比如铅笔)的工具做的,对于这种作品,优化的自定义16色+误差分散抖动绝对没问题了。

[ Last edited by asbai on 2006-5-17 at 17:18 ]
附件
Clipboard01.png
23 发表于 2006-05-17 22:41 ·  中国 湖南 长沙 电信
中级用户
★★
积分 282
发帖 126
注册 2006-05-17 22:29
20年会员
UID 55724
状态 离线
使用色彩量化算法选出最常用的16种颜色,一般情况下用八叉树算法就行了
再使用误差分散算法生成抖动位图

但是16色太少了,图像效果不会改经多少的,而且处理速度比较慢

所以我还是推荐标准VGA调色板,使用有序抖动算法,这样可以即时绘制图片
24 发表于 2006-05-18 09:55 ·  中国 湖北 荆州 电信
高级用户
★★★
积分 994
发帖 444
注册 2005-01-29 00:00
21年会员
UID 35779
性别 男
状态 离线
非常感谢 asbai 的热心解答!

是的日本游戏里的画面用的不是 VGA 16 色, 理论上说可以每副画面使用"不同的 16 色", 但是实际上可能同一个游戏很可能常常仅仅"使用同一个 16 色". 这就要求所有画面保持相同的"色调"? 是在绘画者在制作时就考虑了这一点, 还是后来可以用什么工具让颜色"一致"呢?

我之所以这样罗嗦, 是因为我心中的奢念始终还未消失, 那就是: 能否处理到固定的调色板, 例如缺省 VGA 16 色, 或者别的变态的 16 色, 或者甚至单色.

其实我的想法的一个来源是这样的: 一个 GUI 系统在不同的显示设备上尽可能保持观感一致. 例如, 一个真彩色显示模式下的按钮, 在 16 色下也和"原按钮"最大可能地一致! 当然, Windows 系统考虑了这一点, 所以它保留了一些系统颜色来保持系统组件能够"跨模式" 但是更高一点要求就是, 单色啊, 效果啊, 以及普通图形啊(非系统组件的图形, 例如一副画, 在不同的 256 色 或 16 色 调色板中尽量保持"一致", 尽管可能颜色有些变化, 例如, 在一个特定的调色板中, 必须使用数种颜色去模拟一种不存在的颜色).

显然, 这种想法非常过分, 因为, 让单色图表现 7 色彩虹是强人所难, 但是, 如果能做多好做多好, 这也应该比较有用吧

因为能使用优化色的话, 这个问题的难度就减小不少,而我面临的问题就是一些变态的显示设备的调色板固定了@#$#$@!!

[ Last edited by jawbin on 2006-5-18 at 10:00 ]
25 发表于 2006-05-18 09:57 ·  中国 湖北 荆州 电信
高级用户
★★★
积分 994
发帖 444
注册 2005-01-29 00:00
21年会员
UID 35779
性别 男
状态 离线
谢谢 zyl910!
我会找找你所说的方法.
26 发表于 2006-05-18 13:18 ·  中国 湖南 长沙 电信
中级用户
★★
积分 282
发帖 126
注册 2006-05-17 22:29
20年会员
UID 55724
状态 离线
当年我QB的封笔之作——在VGA 12h模式下实时抖动绘制真彩色数据

'View RGB

'使用有序抖动算法(dither)绘制线性渐变区域、RGB色彩空间(Screen 12下)
' Up , Down , PageUp , PageDown: 改变B分量
' F4~F8: 改变背景
' Esc: 退出
'直接在QB环境下运行速度很慢,编译为exe后就快些了

[ Last edited by zyl910 on 2006-5-18 at 13:20 ]
附件
ViewRGB.rar (39.13 KiB, 下载附件所需积分 1 点, 下载次数: 2)
ViewRGB.gif
人类存在的目的就是试图理解人类为何存在
27 发表于 2006-05-22 22:13 ·  中国 上海 普陀区 电信
高级用户
★★
积分 653
发帖 252
注册 2006-04-16 19:48
20年会员
UID 53939
状态 离线
zyl910兄的这个是典型的网纹抖动算法,呵呵。如果只是要事先处理图片,photoshop或者corel paint之类专业图像编辑器带的算法,在效果和效率上讲无疑都是不错的选择。

如果需要自己写这方面算法,可以考虑用GraphicsMagick(http://www.graphicsmagick.org/)。这是一套开源的跨平台图像处理库,包括很多功能,支持各种高效的图像处理和变换。
28 发表于 2006-05-23 13:29 ·  中国 浙江 宁波 电信
初级用户
积分 96
发帖 32
注册 2006-04-15 16:03
20年会员
UID 53877
状态 离线
zyl910
有没有算法原理。。。??代码看着不方便,我也没有学过qb
29 发表于 2006-05-23 18:02 ·  中国 湖南 长沙 电信
中级用户
★★
积分 282
发帖 126
注册 2006-05-17 22:29
20年会员
UID 55724
状态 离线
有序抖动算法(dither)

一般《计算机图形学》方面的书都会讲的
人类存在的目的就是试图理解人类为何存在
30 发表于 2006-05-23 22:38 ·  中国 浙江 宁波 电信
初级用户
积分 96
发帖 32
注册 2006-04-15 16:03
20年会员
UID 53877
状态 离线
好,俺去看看,不过俺的那本好像没有讲啊,郁闷
论坛跳转: