c#使用GDI进行简单的绘图

https://www.2cto.com/database/201805/749421.html

https://zhidao.baidu.com/question/107832895.html

private void button2_Click(object sender, EventArgs e)
       {
           Bitmap image = new Bitmap( 200 , 200 );
           Graphics g = Graphics.FromImage(image);
           //使绘图质量最高,即消除锯齿
           g.SmoothingMode = SmoothingMode.AntiAlias;
           g.InterpolationMode = InterpolationMode.HighQualityBicubic;
           g.CompositingQuality = CompositingQuality.HighQuality;
           Pen p = new Pen(Color.Blue, 2 ); //定义了一个蓝色,宽度为的画笔 
           g.DrawString( "字符串" , new Font( "宋体" , 10 ),  new SolidBrush(Color.Blue), new PointF( 10 , 10 ));
           g.DrawLine(p, 0 , 0 , 200 , 200 ); //在画板上画直线
           g.DrawRectangle(p, 0 , 0 , 200 , 200 ); //在画板上画矩形
           g.DrawEllipse(p, 0 , 0 , 200 , 200 ); //在画板上画椭圆
           //保存图片
           image.Save(@ "c:\1.jpg" );
           #region 显示
           //pictureBox1.Image = (Image)image;
           //pictureBox1.Image.Save(@"c:\1.jpg");
           #endregion
       }
 
 
 
你在绘制字符串之前可以使用Graphics的MeasureString方法测量它的尺寸再绘制一个相应大小的矩形就行了,如下
Graphics g = this.CreateGraphics();
Font font = new Font("宋体", 9f);
PointF pointF = new PointF(10, 10);
SizeF sizeF = g.MeasureString("Hello World!", font);
g.FillRectangle(Brushes.White, new RectangleF(pointF, sizeF));
g.DrawString("Hello World!", font, Brushes.Black, pointF);
g.Dispose();
font.Dispose();
 
 
//自己整合后写的,画正方形,中间写字
 
 Bitmap image = new Bitmap(100, 50);
                                    Graphics g = Graphics.FromImage(image);
                                    Font font = new Font("黑体", 26.25f, FontStyle.Bold);
                                    SizeF sizeF = g.MeasureString(lxtmStr, font);
                                    //sizeF.Width, sizeF.Height
                                    image = new Bitmap(Convert.ToInt32(sizeF.Width), Convert.ToInt32(sizeF.Height));
                                    g = Graphics.FromImage(image);
                                    //使绘图质量最高,即消除锯齿
                                    g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
                                    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                                    g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;

                                    PointF pointF = new PointF(0, 0);

                                    if ((dsShoptemp.Tables[0].Rows[0]["STEP"].ObjToInt() % 2) == 1)
                                    {
                                        g.FillRectangle(Brushes.White, new RectangleF(pointF, sizeF));
                                        g.DrawString(lxtmStr, font, Brushes.Black, pointF);
                                    }
                                    else
                                    {
                                        g.FillRectangle(Brushes.Black, new RectangleF(pointF, sizeF));
                                        g.DrawString(lxtmStr, font, Brushes.White, pointF);
                                    }
                                    item["路线条码"] = image;

猜你喜欢

转载自www.cnblogs.com/LuoEast/p/11991052.html