首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ICanvasBitmap来自BitmapSource

ICanvasBitmap来自BitmapSource
EN

Stack Overflow用户
提问于 2016-12-08 17:23:44
回答 2查看 894关注 0票数 0

是否有方法将Windows.UI.Xaml.Media.Imaging.BitmapSource对象转换为实现Microsoft.Graphics.Canvas.ICanvasImage的类的成员?接口本身只包含两个矩形获取方法。然而,我认为这还不够,因为我的最终目标是

代码语言:javascript
复制
CanvasDrawingSession.DrawImage()

我不得不想象,这需要一种获取位图像素的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-09 06:47:18

不能直接从Windows.UI.Xaml.Media.Imaging.BitmapImage获取像素。但是您可以使用WriteableBitmap而不是BitmapImage。然后,您可以通过其PixelBuffer属性获取像素数据。

之后,您可以使用CanvasBitmap.CreateFromBytes()方法创建CanvasBitmap。然后使用这个CanvasBitmap对象作为参数调用CanvasDrawingSession.DrawImage()方法。

票数 1
EN

Stack Overflow用户

发布于 2016-12-10 07:18:27

除了使用PixelBuffer (如上面的谢泽维尔 )之外,您还可以使用SoftwareBitmap来创建ICanvasImage。如果您有一个流,那么您可以这样做:

代码语言:javascript
复制
BitmapDecoder decoder = await BitmapDecoder.CreateAsync(stream);
CanvasDrawingSession.DrawImage(await decoder.GetSoftwareBitmapAsync(BitmapPixelFormat.Rgba16, BitmapAlphaMode.Premultiplied));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41045274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档