我正在编写一个应用程序,需要我将大图像分割成小图块,其中每个图块本质上是原始图像的裁剪版本。
目前我的拆分操作看起来像这样
tile.Image = new BitmapImage();
tile.Image.BeginInit();
tile.Image.UriSource = OriginalImage.UriSource;
tile.Image.SourceRect = new Int32Rect(x * tileWidth + x, y * tileHeight, tileWidth, tileHeight);
tile.Image.EndInit();
直觉上,我认为这基本上会创建对原始图像的“参考”,并且只会显示为图像的子矩形。然而,我的分割操作执行速度很慢,让我相信这实际上是在复制原始图像的源矩形,这对于大图像来说非常慢(分割一个像样的图像时会有明显的 3-4 秒停顿)大小图像)。
我环顾四周,但无法找到一种方法将位图绘制为大图像的子矩形,而无需复制任何数据。有什么建议么?