首页 > 其他分享 >GDI、GDI+相应的API

GDI、GDI+相应的API

时间:2024-09-05 19:52:11浏览次数:9  
标签:Point Graphics new API AddLine path GDI 绘制 相应

目录

一、GDI+重要命令空间?

二、GDI+重要类?创建图形的3种主流方法?

三、创建图形的3种主流方法:

四、API规律:

五、什么是GUI?GDI和GUI区别?

六、画东西的基本步骤?

一、创建图形对象(画布、画板)

二、设置绘制参数(抗锯齿,平滑等)

三、开始绘制(使用相关的图形方法,属性,其他对象)

绘制图片: 

绘制路径:

绘制文字:

绘制圆:

绘制五角星:


一、GDI+重要命令空间?

System.Drawing
System.Drawing.Text
System.Drawing.Design
System.Drawing.Drawing2D
System.Drawing.Imaging
System.Drawing.Printing

二、GDI+重要类?创建图形的3种主流方法?

Graphics类
画图方法都被包括在Graphics类中,在画任何对象时,我们首先要创建一个Graphics类实例,这个实例相当于建立了一块画布,有了画布才可以用各种画图方法进行绘图。

三、创建图形的3种主流方法:

1.Graphics g = e.Graphics;  注意:e的类型是PaintEventArgs
2.Graphics g = this.CreateGraphics();或Graphics pg = this.panel1.CreateGraphics();  注意:this是窗体对象
3.Graphics g = Graphics.FromImage(img); 注意:参数类型是Image或BitImage;

四、API规律:

1.第一参数:画笔(空心,DrawXXX,配合Pen),画刷(实心,填充,FillXXX,配合Brush)
2.区域:a.坐标配合宽高  b.矩形
3.顺序:建议顺时针,点(左上,右上,右下,左下),角度(X轴正方向为0,Y轴下方为90)

五、什么是GUI?GDI和GUI区别?

GUI:是图形用户接口,英文全称:Graphics User Interface。指用户界面,如窗体,控件。
GDI:是图形设备接口,包含图形编程相关的对象和方法。
 

六、画东西的基本步骤?

a. 创建Graphics对象;才有了绘制图形的能力。
b. 绘画的时机?Paint事件
c. 使用Graphics对象提供的相关方法,进行画图。画图时会依赖其他对象,如:Pen,Brush,Font,Color等

一、创建图形对象(画布、画板)

创建一个路径实例(就是在画板Graphics划分一个区域)

Graphics类,可以理解成画板,其实此类提供绘制图形的能力(子对象,属性,方法,俗称的接口。)

Graphics g = e.Graphics;

二、设置绘制参数(抗锯齿,平滑等)

g.SmoothingMode = SmoothingMode.AntiAlias;
g.CompositingQuality = CompositingQuality.HighQuality;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;

三、开始绘制(使用相关的图形方法,属性,其他对象)

注意:起点的坐标要考虑画笔的宽度

Pen pen = new Pen(Color.Red, 20F);
Point pt1 = new Point(50, 50);
Point pt2 = new Point(100, 50);
g.DrawLine(pen, pt1, pt2);

DrawLines不一定是闭合的

Pen pen = new Pen(Color.Red, 20F);
Point[] points = new Point[] {
    new Point(20,20),
    new Point(100,20),
    new Point(55,100),
    new Point(20,20),
    new Point(100,20),
};
g.DrawLines(pen, points);

绘制图片: 

参数1:绘制的原始图片。

参数2:把原始图片绘制的多大的一个矩形中(目标矩形),如果图片过大,会自动缩放到此矩形中。

参数3:原始图片的所占的矩形大小。

参数4:参数3所用的单位

 string path = Path.Combine(Environment.CurrentDirectory, "../../images/1.png");
 Image img = Image.FromFile(path);

 Rectangle destRect = new Rectangle(0, 0, this.panel3.Width, this.panel3.Height);
 Rectangle srcRect = new Rectangle(0, 0, img.Width, img.Height);
 g.DrawImage(img, destRect, srcRect, GraphicsUnit.Pixel);

绘制路径:

GraphicsPath path = new GraphicsPath();
path.StartFigure(); // 路径开始
path.AddLine(30, 30, 100, 30);
path.AddLine(100, 30, 100, 130);
path.CloseFigure(); // 路径结束 

path.StartFigure(); // 路径开始
path.AddEllipse(110, 0, 30, 30);
path.CloseFigure(); // 路径结束

g.FillPath(Brushes.Red, path);

绘制文字:

Brush brush = new SolidBrush(Color.Red);
Point point = new Point(10, 10);
g.DrawString("yoyo21ktime",new Font("苹方",10),brush,point);

绘制圆:

GraphicsPath path = new GraphicsPath();
path.StartFigure();
//path.AddLine(10F, 10F, 60F, 60F);
//path.AddLine(60F, 60F, 60F, 60F);
path.AddArc( rect, 100F, 360F);

绘制五角星:

GraphicsPath path = new GraphicsPath();
path.StartFigure();
path.AddLine(new Point(0, 76), new Point(80, 76));
path.AddLine(new Point(80, 76), new Point(106, 0));
path.AddLine(new Point(106, 0), new Point(130, 76));
path.AddLine(new Point(130, 76), new Point(210, 76));
path.AddLine(new Point(210, 76), new Point(146, 124));
path.AddLine(new Point(146, 124), new Point(170, 200));
path.AddLine(new Point(170, 200), new Point(106, 152));
path.AddLine(new Point(106, 152), new Point(40, 200));
path.AddLine(new Point(40, 200), new Point(66, 124));
path.CloseFigure();

g.FillPath(new SolidBrush(Color.Blue), path);

标签:Point,Graphics,new,API,AddLine,path,GDI,绘制,相应
From: https://blog.csdn.net/yoyo21ktime/article/details/141939207

相关文章

  • 基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践
    作者:计缘LLMChat应用大家应该都不陌生,这类应用也逐渐称为了我们日常的得力助手,如果只是个人使用,那么目前市面上有很多方案可以快速的构建出一个LLMChat应用,但是如果要用在企业生产级别的项目中,那对整体部署架构,使用组件的性能,健壮性,扩展性要求还是比较高的。本文带大家了解一......
  • OpenAPI definition(示例)
    OpenAPI规范(中文版)(apifox.cn)OpenAPIdefinition-CSDN博客 简介:OpenAPIdefinitionHOST:http://192.168.41.191:8902/api/v1/user联系人:Version:v0接口路径:/user/v3/api-docs[TOC]学校管理获取学校列表接口地址:/user/schools请求方式:GET请求数据类型:appli......
  • 企业官网CMS(API翻译版)V1.0.4
    多语言企业官网CMS管理系统(API翻译版),支持自动生成模板、自定义标签、多语言翻译、自定义表单等功能。提供全部无加密源码,支持私有化部署。V1.0.4版本更新修复在内容管理中,数据库表无deletetime:软删除字段,但显示回收站按钮bug企业官网CMS(API翻译版)......
  • 淘宝 API 接口使用的技术要点与注意事项
    在当今数字化的商业环境中,淘宝API接口为开发者提供了强大的工具,允许他们与淘宝平台进行交互,获取商品信息、处理交易等。然而,正确使用这些接口需要遵循一定的技术规范和注意事项,以确保程序的稳定性、安全性和高效性。以下是一些关键的技术要点和注意事项。一、注册与认证在开放平......
  • 一个简单API,一键实现多通道消息推送
    Spug推送助手是一个强大的多通道消息推送平台,支持电话、短信、邮件、飞书、钉钉、微信、企业微信等多种推送方式。只需一个简单的API调用,即可实现消息的快速分发。如何使用?使用推送助手非常简单,一个curl命令即可搞定:curlhttps://push.spug.cc/send/LQjEKrl?code=688522......
  • 通过DashScope API调用将多种模态转换为向量
    本文介绍如何通过模型服务灵积DashScope进行多模态向量生成,并入库至向量检索服务DashVector中进行向量检索。模型服务灵积DashScope,通过灵活、易用的模型API服务,让各种模态模型的能力,都能方便的为AI开发者所用。通过灵积API,开发者不仅可以直接集成大模型的强大能力,也可以对模型......
  • 淘宝API接口:全面解析与应用实践
    淘宝作为国内领先的电商平台,为满足其合作伙伴和开发者的需求,提供了丰富的API接口。这些接口不仅简化了开发者与淘宝平台的交互过程,还为开发者提供了强大的技术支持。淘宝API接口概述淘宝API接口是一组允许开发者与淘宝平台进行数据交互的接口,包括商品信息、订单信息、物流信......
  • API数据接口在电商运营中的作用有哪些?
    API数据接口在电商运营中扮演着至关重要的角色,其作用广泛且深远。以下是API数据接口在电商运营中的几个主要作用:数据采集与分析:API接口能够收集用户的购物记录、搜索记录、商品收藏记录以及其他用户行为数据。这些数据对于电商企业来说是宝贵的资源,可以帮助企业更好地了解用户需求......
  • 用SpringBoot API实现识别pdf文件是否含有表格
    要使用SpringBootAPI实现一个识别PDF文件是否含有表格的功能,你可以结合PDF解析库(如ApachePDFBox)来解析PDF文件内容,并通过分析文本或线条来判断PDF是否包含表格。然后使用SpringBoot提供的RESTAPI来实现上传和检测功能。目录实现步骤1.配置pom.xml2.......
  • WebApi使HttpPut/HttpDelete有效
    405-不允许用于访问此页的HTTP谓词。您要查找的页面无法显示,因为尝试访问时使用了无效方法(HTTP谓词)。解决办法:在将应用程序从经典模式迁移到集成模式时,可以保留经典模式下的自定义模块和处理程序注册,也可以将这些注册移除。如果不移除经典模式下使用的httpModules......