从URL保存图像

时间:2013-03-09 16:45:53

标签: c# .net image windows-phone-7 windows-phone

我试图从Windows Phone 7中的URL保存图像后,我一直在墙上试试。我已经尝试了http://imagetools.codeplex.com/和WritableBimap,但我总是遇到无法加载的问题(高度为零)因为图像没有加载,或者其他跨线程异常(假设我使用后台线程)。是否有一个简单的库让我保存并调整来自URL的图像?

3 个答案:

答案 0 :(得分:0)

您目前是否正在使用 WebClient WebRequest

MediaLibrary.SavePicture 也可能有效

http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.media.medialibrary.aspx

http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.media.medialibrary.savepicture.aspx

这些也是官方 Microsoft库,因此它们可能比外部库更好。

要调整大小,您可能有兴趣查看强烈推荐的http://www.leadtools.com/sdk/silverlight/windows-phone.htm

您可能也对Microsoft博客中的这篇文章感兴趣:http://blogs.msdn.com/b/mikeormond/archive/2010/12/09/resizing-images-in-windows-phone-7.aspx

答案 1 :(得分:0)

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

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 here记录的函数,用于将流转换为字节数组。 MediaLibrary Microsoft.Xna.Framework 程序集的一部分,正如其他一个答案中所述。

答案 2 :(得分:-1)

查看SimpleImage.Resizer

该来源可在github上找到。

如果你想看到它的实际效果,作者还设置了demo on apphb