繁体   English   中英

将图像保存到媒体库WP7

[英]Saving image to media library WP7

我无法将图像保存到Windows Phone媒体库中! 这是我的代码片段:

public void SaveImageTo(string fileName) 
    {
        fileName += ".jpg";
        var myStore = IsolatedStorageFile.GetUserStoreForApplication();
        if (myStore.FileExists(fileName))
        {
            myStore.DeleteFile(fileName);
        }

        IsolatedStorageFileStream myFileStream = myStore.CreateFile(fileName);                       

        // Create a new stream from isolated storage, and save the JPEG file to the media library on Windows Phone.
        myFileStream = myStore.OpenFile(fileName, FileMode.Open, FileAccess.Read);
        MediaLibrary library = new MediaLibrary();

        library.SavePicture(fileName, myFileStream);
    }

请给点建议! 提前致谢 !

尝试这个 ....

public void SaveImageTo(string fileName = "ShareByQR.jpg") 
    {
        fileName += ".jpg";
        var myStore = IsolatedStorageFile.GetUserStoreForApplication();
        if (myStore.FileExists(fileName))
        {
            myStore.DeleteFile(fileName);
        }

        IsolatedStorageFileStream myFileStream = myStore.CreateFile(fileName);
        WritableBitmap wr = imageControl; // give the image source
        wr.SaveJpeg(myFileStream, wr.PixelWidth, wr.PixelHeight, 0, 85);
        myFileStream.Close();

        // Create a new stream from isolated storage, and save the JPEG file to the media library on Windows Phone.
        myFileStream = myStore.OpenFile(fileName, FileMode.Open, FileAccess.Read);
        MediaLibrary library = new MediaLibrary();
        //byte[] buffer = ToByteArray(qrImage);
        library.SavePicture(fileName, myFileStream);
    }

希望它有效!

我更改了Shishir的代码段以读取外部网址。 这是我的方法:

    public void SaveImageTo(string fileName = "SO.jpg")
    {
        string source = "http://i.stack.imgur.com/PIFN0.jpg";
        Uri url;
        if (Uri.TryCreate(source, UriKind.Absolute, out url))
        {
            WriteableBitmap wr;
            BitmapImage img = new BitmapImage(url);
            img.CreateOptions = BitmapCreateOptions.None;
            // When image is ready, show must go on.
            img.ImageOpened += (s, e) =>
            {
                wr = new WriteableBitmap((BitmapImage)s);
                //fileName += ".jpg"; // we dont need that
                var myStore = IsolatedStorageFile.GetUserStoreForApplication();
                if (myStore.FileExists(fileName))
                {
                    myStore.DeleteFile(fileName);
                }
                IsolatedStorageFileStream myFileStream = myStore.CreateFile(fileName);
                //WriteableBitmap wr = img; // image source already given
                wr.SaveJpeg(myFileStream, wr.PixelWidth, wr.PixelHeight, 0, 85);
                myFileStream.Close();

                // Create a new stream from isolated storage, and save the JPEG file to the media library on Windows Phone.
                myFileStream = myStore.OpenFile(fileName, FileMode.Open, FileAccess.Read);
                MediaLibrary library = new MediaLibrary();
                //byte[] buffer = ToByteArray(qrImage);
                library.SavePicture(fileName, myFileStream);
            };
        }
    }

不要忘记在WMAppManifest.xml中添加ID_CAP_MEDIALIB_PHOTO。 我希望这也会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM