C# GDI+ 文字操作

一、投影文字

 
  
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 ));
}

二、倒影文字

 
  
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);
}

三、文字填充线条

 
  
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 ));
}

四、旋转文字

 
  
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();
}
}

五、印版文字

 
  
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# 图片切换特效

C# GDI+ 双缓冲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值