【发布时间】:2016-12-08 17:23:44
【问题描述】:
有没有办法将 Windows.UI.Xaml.Media.Imaging.BitmapSource 对象转换为实现 Microsoft.Graphics.Canvas.ICanvasImage 的类的成员?接口本身只包含两个获取矩形的方法。但是,我认为这还不够,因为我的最终目标是调用
CanvasDrawingSession.DrawImage()
我不得不想象需要一种方法来获取位图像素。
【问题讨论】:
-
你的 BitmapSource 来自哪里?
-
Splat 库。 github.com/paulcbetts/splat——让事情变得困难的根本问题是我正在为多个平台进行开发。但我最终决定这已经够混乱了,在 Windows 的情况下最好完全绕过 BitmapSource。
-
我问,因此使用 SoftwareBitmap 而不是 BitmapSource 可能会更容易。因此,可以立即从中创建 CanvasImage。
-
嗯,这个想法是 Splat 加载隐藏了平台依赖关系。但在这种情况下,它不会飞,所以我只是从流中获取它。
-
如果你有一个流,那么你可能可以使用 SoftwareBitmap:
BitmapDecoder decoder = await BitmapDecoder.CreateAsync(stream); return await decoder.GetSoftwareBitmapAsync(BitmapPixelFormat.Rgba16, BitmapAlphaMode.Premultiplied);。然后你可以使用 *CanvasBitmap.CreateFromSoftwareBitmap(...)`。
标签: c# uwp bitmapsource win2d