分类 图形编程 中的文章

美术资源超级压缩方法

如何在质量下降不大的情况下降低一倍的占用?如何让臃肿的美术资源压缩再压缩?

JPEG->WDP/WEBP

大部分项目都陆续废掉了JPEG,而最好的代替品是微软的HD Photo,wdp格式,在PSNR差不多的情况下,wdp能比JPEG小一倍多。

(wdp的encoder/decoder不好找的话,我这里有一份微软的库)

观察下面的演示图片不要缩放PDF,用100%显示才看得清楚差别

image

image

JPEG 16.18 KB,可以看出脸部方块已经很严重,头发等高频部分已经看不清楚,帽子和墙面质量损失严重,而下面这张WDP文件(HDPHOTO,XnView可以转换)只有13.85KB大小,质量却比JPEG好很多。(通常情况下峰值信噪比差不多的话,WDP能够小一倍):

压缩比从强到弱依次是:WDP>WEBP>JPEG2000>JPEG。因此换用WDP格式能缩小不少资源。

……

阅读全文

[自制开源] 轻量级图形库 PixelLib

  • 图像:64种不同的像素格式,色彩空间变换,多种图形图像变换。
  • 质量:支持3种级别抗锯齿效果,高质量几何图形绘制。
  • 实现:轻量级纯软件实现,100% C代码(仅700KB代码)。
  • 优化:SSE2/MMX优化 地址:https://github.com/skywind3000/pixellib

1. 图像变换:

支持仿射变换和透视变换,提供大量图像变换操作接口。

2. 抗锯齿:

所有图形绘制支持3级不同程度的抗锯齿效果。

3. 图像绘制:

图像任意拉伸,旋转,3D旋转,并且同时进行色彩空间变换。全部采用浮点数坐标,图像移动更为平滑。

4. 几何作图:

全面的抗锯齿几何作图效果。

5. 图像扭曲:

在源图像上布置若干关键点,然后改变这些关键点在屏幕上的对于位置即可实现图像扭曲。

**使用 Pixellib 来渲染 iOS 风格的图标 **

……

阅读全文

ASCII Art Algorithm

因为希望将图片转换成字符以后可以方便的帖到论坛或者BBS上,所以画时间写了这个算法。

现有很多算法都是将一个点匹配成一个字符,这样转换工作只是简单的将点亮度查表后换成ASCII字符而已,但是其实这样做的效果并不十分好,首先80x25的字符屏幕就只能表示80x25个点,无法充分发挥单个字符的字形特点,而且图片很多精度和细节都丢失了。比如下面这个连接:

www.sebastian-r.de

所以我的算法主要是匹配周围一部分点到ASCII字符,这样斜线能够顺利匹配成“/”,其他形状的东西也能够顺利按照字形特点进行匹配,因此同样80x25个点,但是后者所能够表达的像素点更多,细节度更加丰富:

上面的效果是作了误差扩散的,其实转换成ASCII字符时不做也可以,只是说希望转换前的局部/整体亮度等于转换后亮度,能量守恒一些而已。

其实如果用同 一种颜色的64个常见字符表达精度和细节度很高,对比度不高的图片还是比较困难的,可以进一步优化的方法也有几种,其一是对照片作拉普拉斯变换,将噪声过 滤掉再取出轮廓,这样转换出来的就是仅仅包含轮廓的对比度很高的图片了。

或者将图片频谱中能量不高的,比较弱的频率去掉,留下能量高的频率,这样图片看起 来更干净一些,只是后面这两种方法就无法保证实时渲染了。

……

阅读全文

在现MSN魔法表情

下面是播放时候的效果图:

MSN的魔法表情实在是COOL,兴趣之下自己也做了一个特效演示 将FLASH拖到窗口上面,然后点“特效”, 如果桌面是32位的效果非常漂亮,可以拖动图形,现在就下载:

演示程序 演示程序地址二 (98KB)

最好笑的事情是那天发现有些聊天软件的魔法表情居然是假的,它是把桌面抓下来然后用IE空间来播放flash, 顺便把抓下来的桌面当背景.或者直接用ColorKey -_-

……

阅读全文

艺术化的程序设计

计算机的硬件也有限,而人的创造也无限,程序设计美于思维和行为,记得1997年一个叫做 “OMNISCENT”的DEMO使人感慨万分, 作者就像一名艺术家在一粒小小的米粒上雕刻着自己的作品一般。能力虽有不及,仍不妨我校仿,以此挖掘计算机最原始的艺术表现形式:

(此为自去年九月到现在三次发布中的最终版本: EXFORCE)

在DOS窗口中运行DEBUG,然后把横线下的内容复制、粘贴到DEBUG窗口中,回车就可以见到了。

……

阅读全文