首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WinRT如何保存ContactPicker IRandomAccessStreamWithContentType的映像

WinRT如何保存ContactPicker IRandomAccessStreamWithContentType的映像
EN

Stack Overflow用户
提问于 2013-03-02 00:27:56
回答 1查看 649关注 0票数 2

使用以下代码,我可以获得表示联系人拇指的IRandomAccessStreamWithContentType

代码语言:javascript
复制
var contactPicker = new ContactPicker();
contactPicker.SelectionMode = ContactSelectionMode.Contacts;

var contact = await contactPicker.PickSingleContactAsync();
var thumb = await contact.GetThumbnailAsync();

但是,处理IRandomAccessStreamWithContentType以获取图像实例和图像文件的最佳方式是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-02 14:48:00

您应该只将其作为包含图像的普通IRandomAccessStream进行处理:

代码语言:javascript
复制
using (var stream = await contact.GetThumbnailAsync())
{
    BitmapDecoder decoder = await BitmapDecoder.CreateAsync(stream);
    BitmapFrame frame = await decoder.GetFrameAsync(0);

    var bitmap = new WriteableBitmap((int)frame.PixelWidth, (int)frame.PixelHeight);
    stream.Seek(0);
    await bitmap.SetSourceAsync(stream);
}

从这里开始,您可以将WriteableBitmap设置为Image控件的源,或者以任何其他方式使用它。

Seek调用是必需的,因为流已经被读取以获取图像大小,因此在读取图像本身之前需要重新设置位置。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15162296

复制
相关文章

相似问题

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