发布网友 发布时间:2022-07-16 05:30
共1个回答
热心网友 时间:2024-02-03 22:06
我也很讨厌官腔,但你理解BItmap前,你应该先要理解Bitmap的父类public sealed class Bitmap : ImageImage有的属性、函数对于Bitmap一样试用一般学习一个新的类,要关注他的目的以及他的主要属性和主要函数1、目的很简单,就是表示一个图像的类,其中记录了绘制这幅图像所必备的各种数据 2、重要属性:Width,Height,从他可以获取图像宽和高,这对于你如何恰当布局图片很有用,比如大于一个你期望的值,你才进行缩小处理。 3、重要函数: Dispose(),因为Image实现了IDispose接口,所以他可以在你不需要使用时,及时的手动释放,而不用等到GC自己去回收,毕竟图片数据也是比较占内存的。 Clone(),实现了ICloneable接口,所以图片可以利用这个函数很方便的进行复制,比如“大家来找茬”游戏,你可以复制一个图片副本,在副本基础上修改,而不破坏前者。 各种From****开头的静态方法,这给你初始化一个图片用的,毕竟不可能所有图片都通过编程实现,大部分来自于本地文件(如JPG),或者网络流(如QQ发送图片),所以你可以猜到,函数的参数是路径或者流,返回值就是实力化好的Image对象。 Save(string filename, ImageFormat format),对图片进行保存,保存到指定位置,并且可以选择保存图片的格式,这个格式是枚举的,所以很方便。 理解了他的构造后,再学习如何绘制Image到用户界面:一般利用GDI+的技术绘制已经在内存中的Image:可以重写窗体的OnPaint函数: protected override void OnPaint(PaintEventArgs e)热心网友 时间:2024-02-03 22:06
我也很讨厌官腔,但你理解BItmap前,你应该先要理解Bitmap的父类public sealed class Bitmap : ImageImage有的属性、函数对于Bitmap一样试用一般学习一个新的类,要关注他的目的以及他的主要属性和主要函数1、目的很简单,就是表示一个图像的类,其中记录了绘制这幅图像所必备的各种数据 2、重要属性:Width,Height,从他可以获取图像宽和高,这对于你如何恰当布局图片很有用,比如大于一个你期望的值,你才进行缩小处理。 3、重要函数: Dispose(),因为Image实现了IDispose接口,所以他可以在你不需要使用时,及时的手动释放,而不用等到GC自己去回收,毕竟图片数据也是比较占内存的。 Clone(),实现了ICloneable接口,所以图片可以利用这个函数很方便的进行复制,比如“大家来找茬”游戏,你可以复制一个图片副本,在副本基础上修改,而不破坏前者。 各种From****开头的静态方法,这给你初始化一个图片用的,毕竟不可能所有图片都通过编程实现,大部分来自于本地文件(如JPG),或者网络流(如QQ发送图片),所以你可以猜到,函数的参数是路径或者流,返回值就是实力化好的Image对象。 Save(string filename, ImageFormat format),对图片进行保存,保存到指定位置,并且可以选择保存图片的格式,这个格式是枚举的,所以很方便。 理解了他的构造后,再学习如何绘制Image到用户界面:一般利用GDI+的技术绘制已经在内存中的Image:可以重写窗体的OnPaint函数: protected override void OnPaint(PaintEventArgs e)