我一直在尝试从 Windows Phone 7 中的 URL 保存图像。我尝试过http://imagetools.codeplex.com/和 WritableBimap,但我总是遇到无法加载的问题(高度为零,因为图像尚未加载,或其他跨线程异常(假设我正在使用后台线程)。是否有一个简单的库可以让我从 URL保存和调整图像大小?
3 回答
要下载和存储图像,您需要执行以下操作:
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在此处记录的一个函数,用于将流转换为字节数组。如其他答案之一所述,MediaLibrary是Microsoft.Xna.Framework程序集的一部分。
您目前使用的是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