【发布时间】:2017-08-07 17:35:40
【问题描述】:
我有 WPF 画布。我需要用不同的颜色绘制多达 50 万个像素。我试图逐个像素地绘制,但速度非常慢。所以我决定创建图像并绘制它。我不知道这是否是最好的方法,所以如果你知道更好的方法,请告诉我。
所以我的问题是,如何在画布上创建和绘制图像?我已经搜索过,但我找不到任何东西。
我有一个二维的颜色数组,我需要绘制它们,可能是通过图像,那么我该怎么做呢?
谢谢,Soptik
编辑:现在,我使用这段代码,但绘制 100*100 像素需要几秒钟。
for(int i = 0; i < w; i++)
{
for(int j = 0; j < h; j++)
{
Draw(i, j, Brushes.Aqua);
}
...
private void Draw(int x, int y, SolidColorBrush b)
{
Line l = new Line();
l.Stroke = b;
l.X1 = x;
l.Y1 = y;
l.X2 = x + 1;
l.Y2 = y + 1;
l.StrokeThickness = 1;
canvas.Children.Add(l);
}
【问题讨论】:
-
如果您想按照您现在可能拥有的代码(我们确实需要查看一些代码),您应该尝试一次绘制多个像素。
-
我试过这个:` for(int i = 0; i
-
尝试将其添加到您的问题文本中,使其更易于阅读:)
-
你做的还不错,这样画图很正常。所以,您是说绘制整个东西的时间太长,或者您希望在绘制时看到进度?
-
检查这个answer。我没有足够的图形经验来为您提供更多信息,但乍一看,您正在做的事情并不是应该做的事情。