n位2n种颜色的位图近似字节数可以用下面的公式计算:BMP文件大小约等于 54+4*2的n次方+(w*h*n)/8,其中高度和宽度都是像素数。需要注意的是上面公式中的54是位图文件的文件头,是彩色调色板的大小。另外需要注意的是这是一个近似值,对于n位的位图图像来说,尽管可能有最多2n中颜色,一个特定的图像可能并不会使用这些所有的颜色。由于彩色调色板仅仅定义了图像所用的颜色,所以实际的彩色调色板将小于。如果想知道这些值是如何得到的,请参考下面文件格式的部分。由于存储算法本身决定的因素,根据几个图像参数的不同计算出的大小与实际的文件大小将会有一些细小的差别。
C#语言基础
本课题所采用的语言为C#这一高级语言来实现。
C#是微软公司所开发的一种面向对象,且运行于.NET Framework之上的高级程序设计语言。C#看似基于C++写成,但又融入其他语言如Delphi、java、VisualBasic等。
面向对象的C#语言
C#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
微软公司开发C#的初衷及C#的特点如下。
C#旨在设计成为一种简单、现代、通用以及面向对象的程序设计语言。
C#语言的实现,应提供对于以下软件工程要素的支持:强类型检查、数组文数检查、未初始化的变量引用检测、自动垃圾收集(一种自动内存释放技术),软件必须做到强大、持久,并具有较强的编程能力。
C#语言应在分布式环境中的开发提供适用的组件开发应用。
为使程序员容易迁移到C#语言,源代码的可移植性十分重要,尤其是对于那些已熟悉C和C++的程序员而言。
对国际化的支持非常重要。
C#适合为独立和嵌入式的系统编写程序,从使用复杂操作系统的大型系统到特定应用的小型系统均适用。
虽然C#程序在存储和操作能力需求方面具备经济性,但此种语言并不能在性能和尺寸方面与C语言或汇编语言相抗衡。
相对于C和C++,C#在许多方面进行了限制和增强。
指针只能被用于不安全模式,大多数对象访问通过安全的引用实现,以避免无效的调用,并且有许多算法用于验证溢出,指针只能用于调用值类型以及受垃圾收集控制的托管对象。
对象不能被显式释放,而是当不存在被引用时用过垃圾回收器回收。
只允许单一继承,但是一个类可以实现多个接口。
C#比C++更加类型安全,默认的安全转换是隐含转换,例如由短整型转换为长整型和从派生类转换为基类,而接口同整型,及枚举型同整型不允许隐含转换,非空指针(通过引用相似对象)同用户定义类型的隐含转换必需被显式地确定,不同于C++的复制构造函数。
数组声明语法不同。
枚举位于其所在的命名空间中。
C#中没有模板,但是在C#2.0中引入了泛型,并且支持一些C++模板不支持的特性,比如泛型参数中的类型约束,另一方面,表达式不能像C++模板中被用于类型参数。
属性支持,使用类似访问成员的方式调用。
完整的反射支持。
GDI+在GDI的基础上提供了明显地改进。主要特点是在GDI+中,没有了句柄或设备上下文的概念,它被Graphics对象取代。Graphics类提供了绘制不同图像对象的方法和属性,而且更易于使用。 C#图像的缩放与旋转处理程序设计(6):http://www.751com.cn/jisuanji/lunwen_7214.html