绘图图像在WPF中“过早地”完成

时间:2014-03-04 18:22:31

标签: c# wpf image memorystream

我正在编写一个包含一些图像处理应用程序的拼图程序。 我有一个二维位图数组 - 数组中的每个元素都是一个难题。 我还有一个分别与bitmaps数组匹配的Image对象数组。 我使用内存流将位图对象转换为图像对象。

然而,当谈到将图片绘制到屏幕上时,似乎是图像在实际完成从流中读取之前被放入屏幕方式。它看起来像这样: Seems like image is not read completely

此外,当我尝试将我的图片分成更多部分时,它似乎工作正常。 像这样: Divided into more pieces

我的预感

这是相关代码:

 BitmapImage [,] bitImageArr = new BitmapImage [vertPcs, horzPcs];
        Image[,] imageArr = new Image[vertPcs, horzPcs]; 
        MemoryStream ms = new MemoryStream();
          for(int i=0; i<horzPcs;i++)
              for (int j = 0; j < vertPcs; j++)
              {
                  board.pieces[j, i].Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                  ms.Position = 0;
                  bitImageArr[j, i] = new BitmapImage();                   
                  bitImageArr[j, i].BeginInit();
                  bitImageArr[j, i].StreamSource = ms;
                  bitImageArr[j, i].EndInit();

                  imageArr[j,i] = new Image();
                  imageArr[j,i].Source = bitImageArr[j, i];
                  imageArr[j, i].SetValue(Grid.RowProperty, j);
                  imageArr[j, i].SetValue(Grid.ColumnProperty, i);
                  mainGrid.Children.Add(imageArr[j, i]);

              }
        mainGrid.ShowGridLines = true;

我的预感是它与线程同步有关,但我不确定并寻找更专业的答案。 有没有人知道它的原因是什么以及如何解决它?

0 个答案:

没有答案