Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 提高画线的速度_C#_Winforms_System.drawing - Fatal编程技术网

C# 提高画线的速度

C# 提高画线的速度,c#,winforms,system.drawing,C#,Winforms,System.drawing,因此,我有一个按某些标准排序的点列表: List<System.Drawing.Point> points = new List<System.Drawing.Point>(); System.Drawing.Point prev = new System.Drawing.Point(); 尝试使用一组点。然后你就可以不用for循环了 Pen bluePen= new Pen(Brushes.DeepSkyBlue); Image img = Image.FromFil

因此,我有一个按某些标准排序的点列表:

List<System.Drawing.Point> points = new List<System.Drawing.Point>();
System.Drawing.Point prev = new System.Drawing.Point();
尝试使用一组点。然后你就可以不用for循环了

Pen bluePen= new Pen(Brushes.DeepSkyBlue);
Image img = Image.FromFile("my_granny.jpg");
List<System.Drawing.Point> points = new List<System.Drawing.Point>();

// fill points here ...

System.Diagnostics.Stopwatch s1 = System.Diagnostics.Stopwatch.StartNew();
using (Graphics dr = Graphics.FromImage(img))
{
    dr.DrawLines(bluePen, points);
}
s1.Stop();

// do something with your img here
Pen bluePen=新笔(画笔.深蓝色);
Image img=Image.FromFile(“my_granny.jpg”);
列表点=新列表();
//在这里填充点。。。
System.Diagnostics.Stopwatch s1=System.Diagnostics.Stopwatch.StartNew();
使用(Graphics dr=Graphics.FromImage(img))
{
dr.DrawLines(蓝笔、点);
}
s1.停止();
//在这里用你的img做点什么
尝试使用点数组。然后你就可以不用for循环了

Pen bluePen= new Pen(Brushes.DeepSkyBlue);
Image img = Image.FromFile("my_granny.jpg");
List<System.Drawing.Point> points = new List<System.Drawing.Point>();

// fill points here ...

System.Diagnostics.Stopwatch s1 = System.Diagnostics.Stopwatch.StartNew();
using (Graphics dr = Graphics.FromImage(img))
{
    dr.DrawLines(bluePen, points);
}
s1.Stop();

// do something with your img here
Pen bluePen=新笔(画笔.深蓝色);
Image img=Image.FromFile(“my_granny.jpg”);
列表点=新列表();
//在这里填充点。。。
System.Diagnostics.Stopwatch s1=System.Diagnostics.Stopwatch.StartNew();
使用(Graphics dr=Graphics.FromImage(img))
{
dr.DrawLines(蓝笔、点);
}
s1.停止();
//在这里用你的img做点什么

强烈建议将您的
使用
语句移动到
之外的
for
为什么要添加此标签?@GlorinOakenfoot+1回复Glorin的评论。每次循环迭代都在构建和处理图形对象-将其移到for之外,它的性能应该会更好。安德烈亚斯的回答也是一个好主意。
使用(Graphics dr=Graphics.fromage(img))dr.drawines(蓝笔,points.ToArray()
@Glorin Oakenfoot我这样做了,同样的结果强烈建议将你的
语句移动到
for
之外,这是为什么被标记的?@Glorin Oakenfoot+1对Glorin的评论。你在每次循环迭代中都在构建和处理图形对象-将它移动到for之外,它的性能应该会更好。Andreas的答案I这也是一个好主意。
使用(Graphics dr=Graphics.FromImage(img))dr.drawines(蓝笔,points.ToArray()
@Glorin Oakenfoot我这样做了,同样的结果这不仅会更快,而且对标准笔以外的所有笔都会产生更好的结果。为了改进答案,为什么不发布更正后的代码呢?这不仅会更快,而且对标准笔以外的所有笔都会产生更好的结果。为了改进答案,为什么不发布更正后的代码呢d代码?
Pen bluePen= new Pen(Brushes.DeepSkyBlue);
Image img = Image.FromFile("my_granny.jpg");
List<System.Drawing.Point> points = new List<System.Drawing.Point>();

// fill points here ...

System.Diagnostics.Stopwatch s1 = System.Diagnostics.Stopwatch.StartNew();
using (Graphics dr = Graphics.FromImage(img))
{
    dr.DrawLines(bluePen, points);
}
s1.Stop();

// do something with your img here