posted @ 2005-07-28 10:37
文章分类 - 结构和算法
摘要:前文讲了水印位置的基本思路以及代码,接下来就是水印的实体类了。前面讲了我把水印的组成分为水印位置与水印内容两个对象,但是,实现的时候,界限就不是那么明显。我提供了一个Watermark的实体类,而它只是作为一个抽象的实体,由于水印包括了图片与文字两种形式,所以由此类衍生出ImageWatermark与TextWatermark两个子类。由这两个类来实现具体的水印内容的区分。ImageWaterma...
阅读全文
摘要:水印的生成,起初我只是把它看成一个图片合成的简单过程,充其量也就是再加个追加文字。一开始,我写了一个demo,其实功能而言基本和后面重写的这个没有太大差异,但是因为目的性极强,完全忽略了代码上的可靠性,当时甚至更多的只是关注如何实现透明度的控制。 不过当功能的实现这个槛过了以后,我就反过来关注起给图片加水印的另外一些细节,比如水印的组成,位置等与水印本身同样重要的部分。 从选择水印图片、文字以及位...
阅读全文
posted @ 2005-07-27 21:36
摘要:进阶功能实现 1. 复制(实现ICollection.CopyTo) 1public void CopyTo(Array array, int index) 2{ 3 if (array == null) 4 { 5 throw new NullReferenceException(); 6 } 7 else if (index this._list.C...
阅读全文
posted @ 2005-07-19 16:03
摘要:基础实现部分 1. 添加结点元素(实现IList.Insert、IList.Add) 1public void Insert(int index, object value) 2{ 3 // 首先验证结点值的有效性。 4 this.Validate(index, value); 5 6 7 if (index == 0) 8 { 9 ...
阅读全文
posted @ 2005-07-19 14:20
摘要:链表是一种有序的列表,它的内容通常存储与内容分散的位置上。 一般链表的串联方式有两种: 一种是通过数组有序串联链表的列表元素,通常用到两个数组,一个数组存放数据,一个数组存放链接的关系。这种链表的缺点在于,在插于或者删除元素的时候,要频繁的搬动元素,而且数组的大小是固定的,使用缺乏弹性。 另一种则是动态内存配置的链表,它由许多的结点(Node)链接而成,每一个结点包含数据部分以及指向下一个结点的指...
阅读全文
posted @ 2005-07-19 13:47
摘要:数组是数据结构中最基本的结构形式,它是一种顺序式的结构,存储的是同一类型的数据。每个数组元素都拥有下标(index)和元素值(value),下标方便存取数据,而元素值就是被存储的数据。 数组使用静态的内存空间配置方式。这也是数组的一个很不方便的地方,在经常需要重新分配数据的存储空间的应用上,往往使用数组就显得非常影响效率;而且,对数组的添加、删除、排序的操作也是比较麻烦以及低效的。...
阅读全文
posted @ 2005-07-18 17:28
浙公网安备 33010602011771号