zoukankan      html  css  js  c++  java
  • 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 派生出的类,如 SolidBrushTextureBrush 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

    2021年9月 北京、西安两地,高薪诚聘 .NET工程师,请私信联系!
    如果认为此文对您有帮助,别忘了支持一下哦!
    声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。转载时请在文章页面明显位置给出原文链接。
  • 相关阅读:
    AutoMapper bool与string互转
    Self-signed SSL certificates are being blocked
    Visual Studio 2019设置自定义头部注释
    用多进程同步方法演示“桔子-苹果”问题
    实验教学管理系统 c语言程序代写源码下载
    模拟游客一天的生活与旅游java程序代写源码
    Java作业代写
    快餐店运行模拟C++程序源码代写
    hadoop-2.0.0-cdh4.2.1安装手册
    CDH4 HA方案
  • 原文地址:https://www.cnblogs.com/youring2/p/1582943.html
Copyright © 2011-2022 走看看