首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图将图像保存到Windows 8中的媒体库时出现异常

试图将图像保存到Windows 8中的媒体库时出现异常
EN

Stack Overflow用户
提问于 2013-04-11 11:06:07
回答 1查看 2K关注 0票数 1

在试图将图像保存到MediaLibrary中时,我得到了以下错误

“System.InvalidOperationException”类型的异常发生在Microsoft.Xna.Framework.ni.dll中,但未在用户代码中处理

这是我正在使用的代码

代码语言:javascript
复制
if (SourceImage != null) // Source Image is WriteableBitmap
{
    var imageArray = SourceImage.ToByteArray(); // WriteableBitmapExWinPhone (extension method)
    var res = await SavePhotoToImageHub(imageArray);
    await ShowMessage(res ? AppResources.MEDIA_LIBRARY_SUCCESS_MESSAGE :  AppResources.MEDIA_LIBRARY_FAILURE_MESSAGE);
}

使用is的方法

代码语言:javascript
复制
private Task<bool> SavePhotoToImageHub(byte[] imageArray)
{
    using (var mediaLibrary = new MediaLibrary())
    {
        var fileName = string.Format("Gs{0}.jpg", Guid.NewGuid());
        var picture = mediaLibrary.SavePicture(fileName, imageArray);
        if (picture.Name.Contains(fileName)) return Task.FromResult(true);
    }

    return Task.FromResult(false);
}

我也尝试了流而不是字节数组。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-11 11:26:52

您需要检查的第一件事是是否将ID_CAP_MEDIALIB_PHOTO添加到应用程序清单中。

第二件事是流-你试过重新设置它到开始吗?这种方法对我有效:

代码语言:javascript
复制
private bool SavePhotoToImageHub(WriteableBitmap bmp)
    {

        using (var mediaLibrary = new MediaLibrary())
        {
            using (var stream = new MemoryStream())
            {
                var fileName = string.Format("Gs{0}.jpg", Guid.NewGuid());
                bmp.SaveJpeg(stream, bmp.PixelWidth, bmp.PixelHeight, 0, 100);
                stream.Seek(0, SeekOrigin.Begin);
                var picture = mediaLibrary.SavePicture(fileName,stream);
                if (picture.Name.Contains(fileName)) return true;
            }
        }
        return false;
    }
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15947150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档