将图像保存到媒体库时出现InvalidOperationException

时间:2012-06-14 07:05:24

标签: windows-phone-7 isolatedstorage

我正在尝试将图像保存到媒体库,但是在调用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中,即),因为当我尝试稍后打开它时它会成功显示它。

1 个答案:

答案 0 :(得分:0)

您确定图像保存正确吗? MSDN有很多资源可以将图片保存到MediaLibrary http://msdn.microsoft.com/en-us/library/ff769549(v=vs.92)