当前位置: 首页 > news >正文

c# GDI+

A.GDI、GDI+、GUI
https://blog.csdn.net/dust__/article/details/103675205
https://blog.csdn.net/xunminwei0021/article/details/105003907
https://www.cnblogs.com/HaoYangkun/p/14245560.html
https://blog.csdn.net/weixin_42291376/article/details/127854736

B.案例
https://blog.csdn.net/wenchm/article/details/134717146
https://www.toutiao.com/article/7232425582506557987/
https://www.toutiao.com/article/7232056007227081254/
https://www.toutiao.com/article/7231651555148153379/

C.GDI+API参考:
https://www.jb51.net/article/248117.htm

1。什么是GDI?什么是GDI+? GDI和GDI+区别? plus


GDI:图形设备接口,英文全称:Graphics Device Interface。编写图形程序时需要使用GDI。从程序设计的角度看,GDI包括两个部分:GDI对象和GDI函数。【GDI是使用硬件加速图形渲染的引擎】。

GDI+:微软在Windows 2000以后操作系统中提供的新的图形设备接口。【GDI+不是使用硬件加速的】,而且GDI+2.0比GDI+更快。

GDI+主要提供三方面的服务:
a.二维矢量图形:GDI+提供了存储图形基元自身信息的类(或结构体)、存储图形基元绘制方式信息的类以及实际进行绘制的类。 几何图形
b.图像处理:大多数图片都难以划定为直线和曲线的集合,无法使用二维矢量图形方式进行处理。因此,GDI+为我们提供了Bitmap、Image等类,它们可用于显示、操作和保存BMP、JPG、GIF等图像格式。
c.文字显示:GDI+支持使用各种字体、字号和样式来显示文本。

总结:绘制基本的几何图形,可以绘制复杂图片,可以绘制文字

矢量图形:https://baike.baidu.com/item/二维计算机图形/4797297
矢量图形SVG:https://www.runoob.com/svg/svg-tutorial.html

GDI+比GDI的优越性主要展现在2个方面:扩展了新功能,变成更加简易灵活,性能高。
GDI 与 GDI+ 详细区别参考:
https://www.cnblogs.com/HaoYangkun/p/14245560.html

2。什么是GUI?GDI和GUI区别?


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

详细参考:https://www.cnblogs.com/HaoYangkun/p/14245560.html

3。GDI+ 重要命令空间?


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

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


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

创建图形的3种主流方法:
a.Graphics g = e.Graphics; 注意:e的类型是PaintEventArgs 最推荐的方法
b.Graphics g = this.CreateGraphics();或Graphics pg = this.panel1.CreateGraphics(); 注意:this是窗体对象,大多数控件都有CreateGraphics()
c.Graphics g = Graphics.FromImage(img); 注意:参数类型是Image或BitImage

5。坐标系统?


在GDI+中所采用的坐标系统,与平时人们较常用的坐标系统不同,主要差别在于,一般的二维坐标系,X轴与Y轴分别是往右往上递增(左图),而GDI+所采用的坐标系,X轴与Y轴则分别是往右往下递增(右图)。

详细参考:https://blog.csdn.net/weixin_42291376/article/details/127854736

6。绘图的基本步骤?


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

7。各种绘图练习:


1。坦克大战
https://www.cnblogs.com/misakayoucn/p/17617616.html

2。验证码
https://www.jb51.net/article/248127.htm

3。条形码
https://www.jb51.net/article/36291.htm
https://www.cnblogs.com/soliang/p/18047129

4。文字任意旋转
https://www.jb51.net/article/137976.htm
https://www.jb51.net/article/55403.htm
https://www.jb51.net/article/138077.htm

5。GDI+画圆柱体
https://blog.csdn.net/qq_30725967/article/details/85335577

6。GDI+把图片分割成九宫格
https://www.jb51.net/article/235961.htm

7。GDI+裁切和缩放图像
https://learn.microsoft.com/zh-cn/dotnet/desktop/winforms/advanced/cropping-and-scaling-images-in-gdi?view=netframeworkdesktop-4.8

8。GDI+实现可拖动的图形

https://www.cnblogs.com/lesliexin/p/16554752.html


下载字体:


https://font.chinaz.com/
https://www.fonts.net.cn/


发光文本

public static void DrawGlowingString(Graphics graphics, string text, Font font, Color textColor, Color glowColor, float x, float y) { // 设置文本渲染质量 graphics.TextRenderingHint = TextRenderingHint.AntiAlias; // 绘制发光效果 using (Brush glowBrush = new SolidBrush(glowColor)) { // 在文本下方绘制发光,可以通过调整Offset属性改变发光大小和方向 graphics.DrawString(text, font, glowBrush, x - 1, y + 1); graphics.DrawString(text, font, glowBrush, x + 1, y - 1); } // 绘制实色文本 using (Brush solidBrush = new SolidBrush(textColor)) { graphics.DrawString(text, font, solidBrush, x, y); } }

http://www.jsqmd.com/news/1071609/

相关文章:

  • 山海鲸可视化 v4.7.7 重磅发布
  • 软件分析管理中的洞察发现过程
  • 智能分析+预警推送+自动研判,AI在声誉管理中的三大应用场景
  • Python asyncio 并发文件操作优化
  • 服务端渲染水合:客户端激活与状态同步的处理逻辑
  • SpringBoot 定时任务统一处理微信提现、订单状态同步(无人饺子机后台实战)
  • Ubuntu26.04下Loki与Spring Boot集成实战指南
  • 软件开发的伦理问题与社会责任思考
  • Java性能监控与诊断工具使用
  • 移动端混合开发实战
  • Android 开发者为什么必须掌握 AI 能力?端侧视角下的技术变革
  • SolidWorks 2026下载 三维CAD设计软件安装教程(2026最新版)
  • 合规能力从可选变为必选:声誉管理行业的准入门槛正在提高
  • 系统压测方案
  • 1.5 容器相关面试题
  • 吐血整理:开发者为什么都在用应用托管?看完这篇你就懂了
  • 谁是省时神器?8款AI写作辅助平台榜单,毕业季救星!
  • 服务网格:Istio 是什么?有什么用?
  • 手机投屏电视实用指南:4种通用方法+3款工具实测,网课追剧不再费眼
  • Java的java.lang.StackWalker日志优化
  • 个人技术成长路径规划与学习方法论探讨
  • Audacity:二十年老项目,开源音频编辑的标杆
  • 深度学习模型评估
  • 第4章 输入、输出和命令行交互
  • Cocos透明物体渲染层级错乱?深入剖析优先级与深度写入的相爱相杀
  • 【题解-Acwing】2048. 干草
  • 烤糊的饼干
  • 技术替换中的新旧交替与过渡方案
  • 基于 AI Loop Engine 与 Claude Code 自动生成 Doxygen 接口文档
  • 求学生平均成绩代码分享