TransformedBitmap 到 BitmapImage

TransformedBitmap to BitmapImage

我有一个 BitmapImage 类型的 Observable Collection,我在其中存储了一些图像,这个 collection 绑定到 UI。

现在的问题是,我想对这些图片做些改动,比如旋转。 现在为了旋转,我必须从 BitmapImages 中创建一个 TransformedBitmap,这不是问题所在。

完成后,我想将它们放回collection,问题来了。

Cannot implicitly convert type 'System.Windows.Media.Imaging.TransformedBitmap' to 'System.Windows.Media.Imaging.BitmapImage

我找了很久都没有找到解决这个问题的方法。

问题:如何将 TransformedBitmap 转换回 BitmapImage?

要在 UI 中绑定图像控件的 Source 属性,使用 BitmapSource(甚至 ImageSource)作为元素类型就足够了ObservableCollection 的。

然后您可以添加任何派生的位图类型:

public ObservableCollection<BitmapSource> Bitmaps { get; set; }
...
Bitmaps.Add(new BitmapImage(new Uri(...)));
Bitmaps.Add(new TransformedBitmap(Bitmaps[0], new RotateTransform(90)));