格子画欣赏(二)
格子画欣赏(二)
1.奔跑的蜡笔小新

2.丑女孩

3.哆啦A梦1

4.哆啦A梦2

5.哆啦A梦3

6.哆啦A梦4

7.钢铁侠

8.海绵宝宝和派大星

9.蝴蝶结小女孩

10.杰瑞

11.蜡笔小新全家福

12.两只小猫

13.绿眼睛小男孩

14.马里奥

15.迈克尔•杰克逊

16.帽子男

17.米妮

18.米奇

19.水果小黄人

20.睡觉的大雄和哆啦A梦

21.汤姆

22.唐老鸭

23.小狗扛葵花

24.小男孩

25.雪人

26.眼镜男

27.卓别林

最后,再说一说图片的数字化存储。
之前我们保存了所有单元格的颜色代码,如今我们将单元格组成的绘图区扩充为200×200,要保存的数据有40000个,读写速度明显下降,如何优化有了极大的必要。因为200×200的绘图区不见得一定就是够用的,对于一些大型而复杂的构图,可能需要更大的区域和更大的耐心,付出更多的时间,对于计算机进行单元格着色也有着速度和性能上的挑战。
为此,我们决定采用“连续读写”的方法,虽然在每一个单元格上附加了除“颜色代码”之外更多的信息:比如连续格数,但是对于大多数图片而言,我们说通常都是有着单一的背景的,这种情况是占据主要可能性的,所谓“连续读写”就是针对这种情况的优化。这种方法也不是“尽善尽美”,如果遇到专门设计的、找碴的图片,比如任何相邻两格的颜色都不是相同的情况,则读写速度依旧会下降,回到优化前的状态,而且存储空间则会翻上一倍。
虽然,一个保存了80000个整型数字的txt文本文档也就344KB左右空间,是很小的,但相较于可以更小一些,我们认为还是太过浪费了,数据文本中的大量雷同数字,其实表达的是“单一背景”,如果我们不作任何构图,程序也会傻傻地将一个纯色背景当作极重要的“图案”,按部就班地进行保存的,且存储时间、空间都是一致的。比如:
单独存储时保存的纯白背景:
2,7-200-200-0-16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,……
后面全是无意义的循环,共40000个。
连续存储时变为:
2,7-200-200-0-16777215/40000
仅仅只占4KB,是原来的1/86。这是多么简捷!在这种情况下,越是混色多,存储空间就越大;越是连续的同色多,存储空间就越小。还是很值得的。
好了,关于“格子画”或者叫做“像素画”的这个玩意就折腾到这里吧……打住,再会。
标签:
