C# 从URL保存图像

C# 从URL保存图像,c#,.net,image,windows-phone-7,windows-phone,C#,.net,Image,Windows Phone 7,Windows Phone,我在WindowsPhone7中尝试保存URL中的图像,这是一个又一个的尝试。我已经尝试并编写了BIMAP,但我总是遇到一些问题,要么没有加载(高度为零,因为图像没有加载),要么出现其他跨线程异常(假设我使用的是后台线程)。是否有一个简单的库可以让我从URL保存图像并调整其大小?请签出 该来源可在上获得 如果您想看到它的运行,作者还设置了一个。您现在使用的是WebClient还是WebRequest MediaLibrary.SavePicture也可以使用 这些库也是微软的官方库,因此它们

我在WindowsPhone7中尝试保存URL中的图像,这是一个又一个的尝试。我已经尝试并编写了BIMAP,但我总是遇到一些问题,要么没有加载(高度为零,因为图像没有加载),要么出现其他跨线程异常(假设我使用的是后台线程)。是否有一个简单的库可以让我从URL保存图像并调整其大小?

请签出

该来源可在上获得


如果您想看到它的运行,作者还设置了一个。

您现在使用的是WebClient还是WebRequest

MediaLibrary.SavePicture也可以使用

这些库也是微软的官方库,因此它们可能比外部库工作得更好

对于调整大小,您可能有兴趣查看强烈推荐的


您可能还对Microsoft博客上的这篇文章感兴趣:

要下载并存储图像,您需要执行以下操作:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://i.imgur.com/IgomXCN.jpg");

request.BeginGetResponse(new AsyncCallback((result) =>
    {
        HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result);
        byte[] content = ReadFully(response.GetResponseStream());

        MediaLibrary lib = new MediaLibrary();
        lib.SavePictureToCameraRoll("Test Picture", content);
    }), null);

ReadFully是Jon Skeet编写的一个函数,用于将流转换为字节数组。是Microsoft.Xna.Framework程序集的一部分,如其他答案中所述。

您遇到了什么错误?问题是我正在从后台线程执行此操作,并试图保存到
IsolatedStorage
。映像无法加载。我尝试过使用
手动重置事件
,将其加载到
网络客户端
,使用
部署.Current.Dispatcher.BeginInvoke
并在所有操作结束时设置重置事件,但在保存映像时,映像的宽度/高度仍然为零。您确定url为空吗正确?(以jpeg或png或类似格式结尾)当你将url放入Google Chrome时(比如你会使用其他浏览器)它显示一个图像。除此之外,诚实地说,如果没有代码,很难看到发生了什么。@EchilonTanks。目前我已尝试使用
WebClient
OpenReadAsync
。MediaLibrary.SavePicture看起来不错,但没有处理大小调整问题,所以我仍然遇到了第一个问题。@Echilon您应该检查我的更新d回答,我想你可能会发现这篇文章很有用。请向上投票,并勾选以防对你有帮助。作者想做的事太过分了。@DenDelimarsky-作者已经指出。IMHO,我给出的链接提供了一个更简单的选项。但是看看MediaLibrary,我发现这是一个更简单的选项。谢谢。