C#绘图表面

  任何绘图表面都有三个主要特性:界面的大小,像素分辨率和颜色深度。如果有一个分辨率非常高的位图,要把它绘制到一个低分辨率的绘图表面上,该位图就会进行放大,显得相当大。

绘图表面的颜色深度定义了每个像素可以存储多少种颜色。在GDI+中,每个像素都描述了一种颜色。

在GDI+上,默认的绘图模型使用24为颜色深度。如果绘图表面不允许使用24位颜色深度,GDI+有时会限制可以执行的图形操作类型,有时则与颜色的转换不兼容--这个过程称为抖动。在抖动过程中,GDI+在临近的像素中使用其他颜色,以获得与不能显示的那种颜色最接近的效果。为了避免抖动,可以调用Graphics类的一个方法GetNearestColor,它会返回一种显示器能显示出来、且未经抖动的颜色。

在GDI+中,颜色封装在color结构中。使用color结构有三种方式。一:把RGB值传送给color结构中的一个静态函数,创建color结构的一个新实例。color c = Color。FromArgb(100,100,255)定义RGB模式中3种颜色成分的亮度。二:按照名称引用141中预定义的颜色,Color c = Color.Red。三:HSB模型。色调(Hue)--这是根据波长制定的实际颜色,色调用0到360之间的一个浮点数值定义。饱和度(Saturation)--颜色亮度,级别是用一个0到1之间的浮点数表示。亮度(Brightness)--颜色的相对亮度或暗度,用一个0(黑)到1(白)之间的浮点数表示。

GDI+中的所有颜色都有Alpha成分,它常常设置为255,所以颜色是完全不透明的。但屏幕本身不包含Alpha成分,打印机亦然,但在绘制图像时,总是可以使用alpha成分来混合颜色,也可以简单地把颜色的alpha值传送给图像,这样图像就包含了alpha成分。

GDI+简单地把所有显示设备的像素分辨率都定义为96DPI。

原文地址:https://www.cnblogs.com/ttssrs/p/2396489.html