先看一下效果图:
代码:
private void button1_Click(object sender, System.EventArgs e)
{
Graphics g = this.CreateGraphics();
g.Clear(Color.White);
//g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.CompositingQuality = CompositingQuality.HighQuality;
g.SmoothingMode = SmoothingMode.HighQuality;
int radius = 200;
CircularTextualLayout ctl = new CircularTextualLayout();
ctl.Radius = radius;
Point location = new Point(50, 20);
//ctl.CenterPoint = new Point(location.X + radius, location.Y + radius);
ctl.TextDrawing = "方正姚体方正姚体方正姚体方正姚体";
float arcAngle = 270;
ctl.ArcAngle = arcAngle;
ctl.AngleStart = -arcAngle/2 + arcAngle/2/ctl.TextDrawing.Length;
ctl.TextFontInner = new Font("方正姚体", radius/3.2f);
ctl.RatioX = 0.6f;
ctl.BorderWidth = (int)(ctl.Radius / 40);
//ctl.IsBold = false;
ctl.Location = location;
ctl.WordsColor = Color.FromArgb(250, Color.Red);
ctl.BorderColor = Color.FromArgb(250, Color.Red);
ctl.RectColor = Color.FromArgb(250, Color.Red);
ctl.Draw(g);
g.Dispose();
}
公章样式的水印图片(截图):
private void button2_Click(object sender, System.EventArgs e)
{
Graphics g = this.CreateGraphics();
g.Clear(Color.White);
//g.DrawImage(Image.FromFile(@"F:/imgs/girl/227.jpg"), 0, 0);
g.DrawImage(Image.FromFile(@"D:/JohnsunTest/aa/05290_b11.jpg"), 0, 0);
//g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.CompositingQuality = CompositingQuality.HighQuality;
g.SmoothingMode = SmoothingMode.HighQuality;
int radius = 100;
int offset = 1;
CircularTextualLayout ctl = new CircularTextualLayout();
ctl.Radius = radius;
Point location = new Point(500, 100);
//ctl.CenterPoint = new Point(location.X + radius, location.Y + radius);
ctl.TextDrawing = "公章样式之水印图片制作";
float arcAngle = 270;
//ctl.AngleStart = -105+ 210/ctl.TextDrawing.Length/2;
ctl.ArcAngle = arcAngle;
//ctl.AngleStart = (arcAngle/2) * ( - 1 + 1/ctl.TextDrawing.Length);
ctl.AngleStart = -arcAngle/2 + arcAngle/2/ctl.TextDrawing.Length;
//ctl.TextFontInner = new Font("方正小篆体", 56f);
ctl.TextFontInner = new Font("方正姚体", radius/3.2f);
ctl.RatioX = 0.6f;
ctl.BorderWidth = (int)(ctl.Radius / 40);
//ctl.IsBold = false;
ctl.Location = location;
ctl.WordsColor = Color.FromArgb(160, Color.Black);
ctl.BorderColor = Color.FromArgb(160, Color.Black);
ctl.RectColor = Color.FromArgb(160, Color.Black);
ctl.Draw(g);
location.Offset(-offset*2, -offset*2);
ctl.Location = location;
ctl.WordsColor = Color.FromArgb(160, Color.White);
ctl.BorderColor = Color.FromArgb(60, Color.White);
ctl.RectColor = Color.FromArgb(160, Color.White);
ctl.Draw(g);
g.Dispose();
}
相关链接:
利用C#制作公章(续) 利用C#制作公章(续)_祝紫山(大可山人)博客[GDI+,WPF, .Net图形图像]-CSDN博客
在WPF中制作正圆形公章 在WPF中制作正圆形公章_祝紫山(大可山人)博客[GDI+,WPF, .Net图形图像]-CSDN博客
后续WPF版本:
WPF正圆形公章制作之2 (WPF公章制作之2_祝紫山(大可山人)博客[GDI+,WPF, .Net图形图像]-CSDN博客)