使用以下代码,我可以获得表示联系人拇指的IRandomAccessStreamWithContentType
var contactPicker = new ContactPicker();
contactPicker.SelectionMode = ContactSelectionMode.Contacts;
var contact = await contactPicker.PickSingleContactAsync();
var thumb = await contact.GetThumbnailAsync();但是,处理IRandomAccessStreamWithContentType以获取图像实例和图像文件的最佳方式是什么?
发布于 2013-03-02 14:48:00
您应该只将其作为包含图像的普通IRandomAccessStream进行处理:
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调用是必需的,因为流已经被读取以获取图像大小,因此在读取图像本身之前需要重新设置位置。
https://stackoverflow.com/questions/15162296
复制相似问题