首页 > 编程语言 >C#常用GDI+文字操作汇总

C#常用GDI+文字操作汇总

时间:2024-03-01 15:22:33浏览次数:30  
标签:文字 Font C# text Graphics 汇总 new GDI font

这篇文章主要介绍了C#常用GDI+文字操作,包括文字投影、倒影、旋转等特效,对于提升程序界面的视觉效果有很大的用处。

本文实例汇总了C#常用GDI+文字操作,包含了文字的投影、倒影、旋转等常见的效果,在进行C#应用程序开发中有不错的实用价值。分享给大家供大家参考之用。具体如下:

一、投影文字

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 private void Form1_Paint(object sender, PaintEventArgs e) {   //投影文字   Graphics g = this.CreateGraphics();   //设置文本输出质量   g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;   g.SmoothingMode = SmoothingMode.AntiAlias;   Font newFont = new Font("Times New Roman", 48);   Matrix matrix = new Matrix();   //投射   matrix.Shear(-1.5f, 0.0f);   //缩放   matrix.Scale(1, 0.5f);   //平移   matrix.Translate(130, 88);   //对绘图平面实施坐标变换、、   g.Transform = matrix;   SolidBrush grayBrush = new SolidBrush(Color.Gray);   SolidBrush colorBrush = new SolidBrush(Color.BlueViolet);   string text = "MINGRISOFT";   //绘制阴影   g.DrawString(text, newFont, grayBrush, new PointF(0, 30));   g.ResetTransform();   //绘制前景   g.DrawString(text, newFont, colorBrush, new PointF(0, 30)); }

二、倒影文字

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 private void Form1_Paint(object sender, PaintEventArgs e) {   //倒影文字   Brush backBrush = Brushes.Gray;   Brush foreBrush = Brushes.Black;   Font font = new Font("幼圆", Convert.ToInt16(40), FontStyle.Regular);   Graphics g = this.CreateGraphics();   string text = "MINGRISOFT";   SizeF size = g.MeasureString(text, font);   int posX = (this.Width - Convert.ToInt16(size.Width)) / 2;   int posY = (this.Height - Convert.ToInt16(size.Height)) / 2;   g.TranslateTransform(posX, posY);   int ascent = font.FontFamily.GetCellAscent(font.Style);   int spacing = font.FontFamily.GetLineSpacing(font.Style);   int lineHeight = System.Convert.ToInt16(font.GetHeight(g));   int height = lineHeight * ascent / spacing;   GraphicsState state = g.Save();   g.ScaleTransform(1, -1.0F);   g.DrawString(text, font, backBrush, 0, -height);   g.Restore(state);   g.DrawString(text, font, foreBrush, 0, -height); }

三、文字填充线条

1 2 3 4 5 6 7 private void Form1_Paint(object sender, PaintEventArgs e) {   //使用图像填充文字线条   TextureBrush brush = new TextureBrush(Image.FromFile(Application.StartupPath + "\\花.jpg"));   Graphics g = e.Graphics;   g.DrawString("MINGRISOFT", new Font("隶书", 60), brush, new PointF(0, 0)); }

四、旋转文字

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 private void Form1_Paint(object sender, PaintEventArgs e) {   //旋转显示文字   Graphics g = e.Graphics;   g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;   for (int i = 0; i <= 360; i += 10)     //平移Graphics对象到窗体中心  g.TranslateTransform(this.Width / 2, this.Height / 2);  //设置Graphics对象的输出角度  g.RotateTransform(i);  //设置文字填充颜色  Brush brush = Brushes.DarkViolet;  //旋转显示文字  g.DrawString("......MINGRISOFT", new Font("Lucida Console", 11f), brush, 0, 0);  //恢复全局变换矩阵  g.ResetTransform();   } }

五、印版文字

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 private void Form1_Paint(object sender, PaintEventArgs e) {   //印版文字   int i = 0;   Brush backBrush = Brushes.Black;   Brush foreBrush = Brushes.Violet;   Font font = new Font("Times New Roman", System.Convert.ToInt16(40), FontStyle.Regular);   Graphics g = this.CreateGraphics();   g.Clear(Color.White);   string text = "MINGRISOFT";   SizeF size = g.MeasureString(text, font);   Single posX = (this.Width - Convert.ToInt16(size.Width)) / 2;   Single posY = (this.Height - Convert.ToInt16(size.Height)) / 3;   while (i < Convert.ToInt16(20))   {  g.DrawString(text, font, backBrush, posX - i, posY + i);  i = i + 1;   }   g.DrawString(text, font, foreBrush, posX, posY); }

相信本文所述实例对大家的C#程序设计有一定的帮助。

标签:文字,Font,C#,text,Graphics,汇总,new,GDI,font
From: https://www.cnblogs.com/soliang/p/18047143

相关文章

  • 介绍几个scss 与css 中的新的特性
    介绍几个scss与css中的新的特性css中的@layer。用法如下@layerlow,high;@layerlow{.btn{font-Size:10px;}}@layerhigh{.btn{font-Size:11px;}}@layer{.btn{font-Size:12px;}}.btn{font-Size:1......
  • 国产芯片方案:充气泵方案SIC8833C芯片
    车载手持充气泵是一个用在汽车、摩托车、电动车车胎打气,也常用于充气篮球、足球等球类补气用。在很多时候都是作为车载设备使用,通常用于车胎气压不够,爆胎修理补气使用,这种手持的充气泵,体积小,携带方便,几乎有车的人手一个。车载手持充气泵方案设计主要根据其工作原理,以传感......
  • C#中的GDI+图像编程详解
    本文详细讲解了C#中的GDI+图像编程,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值。一、GraphicsGDI+是GDI(WindowsGraphicsDeviceInterface)的后继者,它是.NETFramework为操作图形提供的应用程序编程接口,主要用在窗体上绘制各种图形图像,可以用于......
  • Pycharm:在工程目录下新建一个Python.exe
    1、起因公司电脑上把Python安装在了系统盘,但是我没有系统盘的修改权限,导致用pip时无法把包安装到系统盘2、解决方案在工程目录下,为工程新建一个Python.exe,之后该工程都采用这个python和它的pip,把包安装在工程包下。1)File→Settings→Project:xxx→PythonInterpreter2)Python......
  • 核心子方法5: invokeBeanFactoryPostProcessors(beanFactory)方法详解
    先总结: 该方法通过指定顺序,遍历调用各种实现了BeanDefinitionRegistryPostProcessor接口或BeanFactoryPostProcessor接口,的beanFactory后处理器注: BeanDefinitionRegistryPostProcessor接口继承了BeanFactoryPostProcessor接口调用顺序: 1.先调用已经提前放入Applicat......
  • C++static 存储类
    1#include<iostream>23//函数声明4voidfunc(void);56intmain()7{8intcount=10;9while(count--)10{11func();12std::cout<<",变量count为"<<count<<std::endl;13......
  • [转]acme自动化---免费SSL证书申请并自动续期
    原文地址:acme自动化---免费SSL证书申请并自动续期_createnewordererror.le_orderfinalizenotfound-CSDN博客背景:各CA厂家都在缩短免费证书的有效时间,包括现在与阿里合作的,普遍只有90天,这样如果频繁手动申请更换就很繁琐,正好github上有一个star数很高的工具acme.sh,......
  • python生成Excel文件减少使用内存
    1、openpyxl模块生成2、xlsxwriter模块contant_memory=True生成TRANSLATEwithxEnglishArabicHebrewPolishBulgarianHindiPortugueseCatalanHmongDawRomanianChineseSimplifiedHungarianRussianChineseTraditionalIndonesianSlovak......
  • .NET Core(.NET6)中gRPC使用
    目录一、简介二、创建gRPC服务端1.创建gRPC项目2.编写自己的服务三、创建gRPC客户端1.创建客户端项目2.grPC服务https的调用3.gRPC内网http调用4.IOC注入的方式调用gRPC四、webapi中加入gRPC 回到顶部一、简介简单解析一下gRPC,gRPC是一个由Google开源......
  • CloudCanal x Hive 构建高效的实时数仓
    简述CloudCanal最近对于全周期数据流动进行了初步探索,打通了Hive目标端的实时同步,为实时数仓的构建提供了支持,这篇文章简要做下分享。基于临时表的增量合并方式基于HDFS文件写入方式临时表统一Schema任务级的临时表基于临时表的增量合并方式Hive目标端写入方式和......