using System; using System.Collections.Generic; using System.Text; using System.Drawing; namespace _1200Gxml心电图绘制 { public class ecgMeasure { //画垂直的 和水平的线 public void Draw_Measure(Bitmap bit, Point p1, Point p2) { Graphics gg = Graphics.FromImage(bit); Pen pp = new Pen(Color.Blue, float.Parse("1")); Pen pp1 = new Pen(Color.Blue, float.Parse("1")); //画水平线 gg.DrawLine(pp, new Point(p1.X,0), new Point(p1.X, bit.Height)); gg.DrawLine(pp1, p1, p2); gg.DrawLine(pp1, p1.X, p1.Y, p1.X, p1.Y - 3); gg.DrawLine(pp1, p2.X, p2.Y, p2.X, p2.Y - 3); gg.DrawLine(pp, new Point(p2.X, 0), new Point(p2.X, bit.Height)); double ecgValue = ((double.Parse((p2.X - p1.X).ToString()) / (96 / 25.4)) / 25) * 1000; string heartRate = ((int)60000 / ecgValue).ToString("0.0"); if (ecgValue > 0) Draw_Rectangular_And_Text(bit, p2.X, p2.Y, ((int)ecgValue).ToString() + " 毫秒,心率:"+ heartRate); //Graphics gg = Graphics.FromImage(bit); //Pen pp = new Pen(Color.Blue, float.Parse("3")); ////画水平线 //gg.DrawLine(pp, p1, p2); //gg.DrawLine(pp, p1.X, p1.Y, p1.X, p1.Y - 3); //gg.DrawLine(pp, p2.X, p2.Y, p2.X, p2.Y - 3); //double ecgValue=((double.Parse((p2.X - p1.X).ToString())/(96/25.4))/25)*1000; //Draw_Rectangular_And_Text(bit, p2.X, p2.Y, ((int)ecgValue).ToString() + " 毫秒"); } //垂直的线 public void Draw_V_Measure(Bitmap bit, Point p1, Point p2) { Graphics gg = Graphics.FromImage(bit); Pen pp = new Pen(Color.Red, float.Parse("1")); //画水平线 //gg.DrawLine(pp, p1, p2); gg.DrawLine(pp, p1.X - 10, p1.Y, p2.X - 10, p2.Y); gg.DrawLine(pp, 0, p1.Y, bit.Width , p1.Y); gg.DrawLine(pp, 0, p2.Y, bit.Width, p2.Y); //gg.DrawLine(pp, p1.X - 10, p1.Y, p2.X - 10, p2.Y); //gg.DrawLine(pp, p1.X - 10, p1.Y, p1.X + 30, p1.Y); //gg.DrawLine(pp, p2.X - 10, p2.Y, p2.X + 30, p2.Y); double ecgMV = ((double.Parse((p2.Y - p1.Y).ToString()) / ((96 / 25.4) * 10))); if (ecgMV < 0) ecgMV = -ecgMV; if (p1.Y < p2.Y) Draw_Rectangular_And_Text(bit, p1.X + 10, p1.Y, ecgMV.ToString("0.000") + " mv"); else Draw_Rectangular_And_Text(bit, p2.X + 10, p2.Y, ecgMV.ToString("0.000") + " mv"); } //画矩形和文字 public void Draw_Rectangular_And_Text(Bitmap bit, int x, int y, string Text) { //画垂直线 Graphics gg = Graphics.FromImage(bit); Font font = new Font("宋体", 15,FontStyle.Bold); //字体 Brush brush = Brushes.Red; //字体颜色; PointF point = new PointF(x, y); //写字的起始位置 gg.DrawString(Text, font, brush, point); } } }