C# GDI+ 简单学习

简介:

一、创建Graphics对象

要绘制图像,首先要创建Graphics对象,然后才可以使用GDI+绘制线条和形状,呈现文本或显示与操作图像。Graphics对象是GDI+的绘图表面,是用于创建图形图像的对象。创建Graphics对象有下面三个方法(摘自MSDN):

1、在窗体或控件的 Paint 事件中接收对图形对象的引用,作为 PaintEventArgs 的一部分。在为控件创建绘制代码时,通常会使用此方法来获取对图形对象的引用。

private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs pe)

{

// Declares the Graphics object and sets it to the Graphics object

// supplied in the PaintEventArgs.

Graphics g = pe.Graphics;

// Insert code to paint the form here.

}

2、调用某控件或窗体的 CreateGraphics 方法以获取对 Graphics 对象的引用,该对象表示该控件或窗体的绘图图面。如果想在已存在的窗体或控件上绘图,请使用此方法。

Graphics g;

// Sets g to a graphics object representing the drawing surface of the

// control or form g is a member of.

g = this.CreateGraphics();

3、由从 Image 继承的任何对象创建 Graphics 对象。此方法在您需要更改已存在的图像时十分有用。

Bitmap myBitmap = new Bitmap(@"C:\Documents and

Settings\Joe\Pics\myPic.bmp");

Graphics g = Graphics.FromImage(myBitmap);

二、与Graphics有关的类

1、 Pen 类 -- 用于绘制线条、勾勒形状轮廓或呈现其他几何表示形式。

Pen 绘制指定宽度和样式的直线。使用 DashStyle 属性绘制几种虚线。可以使用各种填充样式(包括纯色和纹理)来填充 Pen 绘制的直线。填充模式取决于画笔或用作填充对象的纹理。无法继承该类。

下面的代码示例演示了如何使用 Brush 构造 Pen,以及在 Pen 上设置 LineJoin 属性的效果。

此示例是针对使用 Windows 窗体而设计的。将代码粘贴到一个窗体中,然后在处理窗体的 Paint 事件时调用 ShowLineJoin 方法,并传递 e 作为 PaintEventArgs。

private void ShowLineJoin(PaintEventArgs e)

{

// Create a new pen.

Pen skyBluePen = new Pen(Brushes.DeepSkyBlue);

// Set the pen's width.

skyBluePen.Width = 8.0F;

// Set the LineJoin property.

skyBluePen.LineJoin = System.Drawing.Drawing2D.LineJoin.Bevel;

// Draw a rectangle.

e.Graphics.DrawRectangle(skyBluePen, new Rectangle(40, 40, 150, 200));

//Dispose of the pen.

skyBluePen.Dispose();

}

2、 Brush 类 -- 用于填充图形区域,如实心形状、图像或文本。

这是一个抽象基类,不能进行实例化。若要创建一个画笔对象,请使用从 Brush 派生出的类,如 SolidBrush、TextureBrush 和 LinearGradientBrush。当从Brush类继承时,必须重写 Clone方法。

3、 Font 类 -- 提供有关在呈现文本时要使用什么形状的说明。

Windows 窗体应用程序支持 TrueType 字体,并且对 OpenType 字体提供有限的支持。如果您试图使用不受支持的字体,或者在运行此应用程序的计算机上未安装要使用的字体,则用 Microsoft Sans Serif 替代该字体。无法继承该类。

4、 Color 结构 -- 表示要显示的不同颜色。

Color结构表示ARGB颜色。有关 Color 结构的属性所表示的颜色的更多信息,请参见位于 http://www.microsoft.com/china/msdn/library 的 MSDN Library 中的“Color Table”(颜色表)。

示例:截屏程序,使用C#截取屏幕,实现原理 1、获取屏幕,保存在一个Bmp图片。 2、获取一个窗体,并设置该窗体为最大化,并且设置FormBoderStyle为none,使窗体遮罩整个屏幕。
代码:/Files/youring2/SampleCatchScreen.rar




本文转自齐师傅博客园博客,原文链接:http://www.cnblogs.com/youring2/archive/2009/10/14/1582943.html,如需转载请自行联系原作者

相关文章
|
7月前
|
C#
C#学习相关系列之数据类型类的三大特性(二)
C#学习相关系列之数据类型类的三大特性(二)
|
7月前
|
C#
C#学习相关系列之yield和return的区别
C#学习相关系列之yield和return的区别
121 1
|
7月前
|
Java 调度 C#
C#学习系列相关之多线程(一)----常用多线程方法总结
C#学习系列相关之多线程(一)----常用多线程方法总结
|
7月前
|
C#
C#学习相关系列之数组---常用方法使用(二)
C#学习相关系列之数组---常用方法使用(二)
|
7月前
|
存储 C#
C#学习系列相关之数组(一)---数组的定义与使用
C#学习系列相关之数组(一)---数组的定义与使用
|
1月前
|
Java 物联网 C#
C#/.NET/.NET Core学习路线集合,学习不迷路!
C#/.NET/.NET Core学习路线集合,学习不迷路!
|
2月前
|
开发框架 缓存 算法
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
|
7月前
|
C#
C#的基本语法结构学习
【5月更文挑战第17天】C#基础语法包括变量(如`int x = 10`)、常量(`const int MAX_VALUE = 100`)、运算符(如算术和比较运算符)、控制语句(if、for、while等)和函数声明(`int Add(int x, int y) { return x + y; }`)。这些构成C#程序的基本元素。
84 0
|
3月前
|
Linux C# 开发者
Uno Platform 驱动的跨平台应用开发:从零开始的全方位资源指南与定制化学习路径规划,助您轻松上手并精通 C# 与 XAML 编程技巧,打造高效多端一致用户体验的移动与桌面应用程序
【9月更文挑战第8天】Uno Platform 的社区资源与学习路径推荐旨在为初学者和开发者提供全面指南,涵盖官方文档、GitHub 仓库及社区支持,助您掌握使用 C# 和 XAML 创建跨平台原生 UI 的技能。从官网入门教程到进阶技巧,再到活跃社区如 Discord,本指南带领您逐步深入了解 Uno Platform,并提供实用示例代码,帮助您在 Windows、iOS、Android、macOS、Linux 和 WebAssembly 等平台上高效开发。建议先熟悉 C# 和 XAML 基础,然后实践官方教程,研究 GitHub 示例项目,并积极参与社区讨论,不断提升技能。
112 2
|
4月前
|
开发框架 .NET API
C#/.NET/.NET Core推荐学习书籍(24年8月更新)
C#/.NET/.NET Core推荐学习书籍(24年8月更新)
106 0

相关实验场景

更多