Windows 8 如何从People应用程序获取个人资料图片(图像)
我正在尝试从People应用程序获取个人资料图片。我曾经Windows 8 如何从People应用程序获取个人资料图片(图像),windows-8,windows-runtime,microsoft-metro,windows-store-apps,winrt-xaml,Windows 8,Windows Runtime,Microsoft Metro,Windows Store Apps,Winrt Xaml,我正在尝试从People应用程序获取个人资料图片。我曾经 Windows.ApplicationModel.Contacts.Contact=新联系人() 我从Property contact获得缩略图。缩略图 我需要将此缩略图转换为StorageFile。你能为解决这个问题提供一些意见吗 并且,在使用以下代码时: IRandomAccessStreamWithContentType stream = awaitcontactInfo.Thumbnail.OpenReadAsync(); if
Windows.ApplicationModel.Contacts.Contact=新联系人()代码>
我从Property contact获得缩略图。缩略图
我需要将此缩略图转换为StorageFile。你能为解决这个问题提供一些意见吗
并且,在使用以下代码时:
IRandomAccessStreamWithContentType stream = awaitcontactInfo.Thumbnail.OpenReadAsync();
if(stream != null && stream.Size > 0)
{
//
}
有时我会遇到RPC服务器不可用异常
。有时streamSize为零。您正在创建联系人
类的新实例。你不必这样做来与别人取得联系。您应该使用接触器选择器
var contactPicker=new Windows.ApplicationModel.Contacts.contactPicker();
contactPicker.CommitButtonText=“选择”;
ContactInformation contact=等待contactPicker.PickSingleContactAsync();
如果(联系人!=null)
{
irandomaccesstreamwithcontenttype stream=await contact.GetThumbnailAsync();
if(stream!=null&&stream.Size>0)
{
var file=wait ApplicationData.Current.TemporaryFolder.CreateFileAsync(“MyContactThumb.png”,CreationCollisionOption.GenerateUniqueName);
//您还可以使用FileSavePicker将文件保存在用户定义的位置。
Windows.Storage.Streams.Buffer MyBuffer=新的Windows.Storage.Streams.Buffer(Convert.ToUInt32(stream.Size));
IBuffer iBuf=wait stream.ReadAsync(MyBuffer,MyBuffer.Capacity,InputStreamOptions.None);
wait FileIO.WriteBufferAsync(文件,iBuf);
}
}