我正在尝试将图像保存到媒体库,但是在调用SavePicture函数时我收到“InvalidOperationException”。我有一个图像文件保存在Isolatedstorage中,我想保存到图片中心。这是代码片段 -
using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile(fname, FileMode.Open, FileAccess.Read)) //fname is the filename of the image that is to be saved in the library
{
MediaLibrary mediaLibrary = new MediaLibrary();
Picture pic = mediaLibrary.SavePicture("SavedLogo.jpg", fileStream); //Exception thrown here!
fileStream.Close();
}
}
从我收集的内容来看,这个异常与Zune在运行时阻塞了Image库有关。我把它停了下来,也没有把手机连接到电脑上。 当我在物理设备上测试这个应用程序时,应用程序崩溃了,虽然我可以在“已保存的图片”中看到保存的空白图像。
我正在使用网络客户端从网址下载图片,这似乎是正确的。 webclient传递图像的url(openReadAsync)。这是openReadCompleted事件:
void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
var resInfo = new StreamResourceInfo(e.Result, null);
var reader = new StreamReader(resInfo.Stream);
byte[] contents;
using (BinaryReader bReader = new BinaryReader(reader.BaseStream))
{
contents = bReader.ReadBytes((int)reader.BaseStream.Length);
}
IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication();
IsolatedStorageFileStream stream = isf.CreateFile("example.jpg");
stream.Write(contents, 0, contents.Length);
stream.Close();
}
我认为它正确保存文件(在isolatedsotrage中,即),因为当我尝试稍后打开它时它会成功显示它。
答案 0 :(得分:0)
您确定图像保存正确吗? MSDN有很多资源可以将图片保存到MediaLibrary http://msdn.microsoft.com/en-us/library/ff769549(v=vs.92)