是否有方法将Windows.UI.Xaml.Media.Imaging.BitmapSource对象转换为实现Microsoft.Graphics.Canvas.ICanvasImage的类的成员?接口本身只包含两个矩形获取方法。然而,我认为这还不够,因为我的最终目标是
CanvasDrawingSession.DrawImage()我不得不想象,这需要一种获取位图像素的方法。
发布于 2016-12-09 06:47:18
不能直接从Windows.UI.Xaml.Media.Imaging.BitmapImage获取像素。但是您可以使用WriteableBitmap而不是BitmapImage。然后,您可以通过其PixelBuffer属性获取像素数据。
之后,您可以使用CanvasBitmap.CreateFromBytes()方法创建CanvasBitmap。然后使用这个CanvasBitmap对象作为参数调用CanvasDrawingSession.DrawImage()方法。
发布于 2016-12-10 07:18:27
除了使用PixelBuffer (如上面的谢泽维尔 )之外,您还可以使用SoftwareBitmap来创建ICanvasImage。如果您有一个流,那么您可以这样做:
BitmapDecoder decoder = await BitmapDecoder.CreateAsync(stream);
CanvasDrawingSession.DrawImage(await decoder.GetSoftwareBitmapAsync(BitmapPixelFormat.Rgba16, BitmapAlphaMode.Premultiplied));https://stackoverflow.com/questions/41045274
复制相似问题