WPF - 在画布上创建和绘制图像

时间:2017-03-16 13:45:27

标签: c# wpf image canvas

我有WPF画布。我需要绘制不同颜色的50万像素。我试图逐个像素地绘制,但速度非常慢。所以我决定创建Image并绘制它。我不知道,如果这是最好的方法,那么如果你知道更好的方式,请告诉我。

所以我的问题是,如何创建和绘制图像到画布?我搜索过,但我找不到任何东西。

我有二维颜色数组,我需要绘制它们,可能是通过图像,所以我该怎么做?

谢谢,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);
    }

1 个答案:

答案 0 :(得分:1)

使用您当前的方法并不是很糟糕。&#34;由于您拥有的2d阵列的大小,它可能会很慢,但循环通过两个for loops对于此过程是正常的。一些可能的解决方案可能是将rect作为Canvas加载到j("#yt_left #layered-navigation .block.block-layered-nav .block-content").toggle(); 上以显示正在处理的图像,但如果这不是必要的,我将研究如何处理像素数据并可能处理超过一次。

This Question is similar to yours and might help