.net – 如何通过webclient下载图像(jpg)并保存到Windows Phone
发布时间:2020-12-13 21:29:45 所属栏目:Windows 来源:网络整理
导读:由于我缺乏编程经验(3个月),我无法重新创建任何上述问题的例子.我发现的例子涉及非WP7 Silverlight,基于摄像头的图像保存,已根据我的需要复杂或者没有工作.我已经能够使用Webclient的实例下载文本文件,并使用StreamWriter将其保存到独立存储中.我需要用jpg图
由于我缺乏编程经验(3个月),我无法重新创建任何上述问题的例子.我发现的例子涉及非WP7 Silverlight,基于摄像头的图像保存,已根据我的需要复杂或者没有工作.我已经能够使用Webclient的实例下载文本文件,并使用StreamWriter将其保存到独立存储中.我需要用jpg图像完成相同的任务.以下是我用来下载文本文件的内容.
================================================== ============================= IsolatedStorageFile MyStore = IsolatedStorageFile.GetUserStoreForApplication(); private void GetTextFile() { WebClient client = new WebClient(); client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted); client.DownloadStringAsync(new Uri("http://mywebsite.com/textfile.txt")); } private void client_DownloadStringCompleted(object sender,DownloadStringCompletedEventArgs e) { StreamWriter MyStreamWriter = new StreamWriter(new IsolatedStorageFileStream("textfile.txt",FileMode.Create,MyStore)); MyStreamWriter.WriteLine(e.result) MyStreamWriter.Close(); } ================================================== ============================= 我已经删除了一些用于处理错误等的行,以使其尽可能简单. 请有人修改以上内容以便我下载并保存jpg吗? 请保持尽可能简单,因为我很容易混淆. 感谢您提前的时间! 解决了!================================================ =============================== 我设法使用以下网站提供的信息. 希望这将有助于未来其他受挫的新手! IsolatedStorageFile MyStore = IsolatedStorageFile.GetUserStoreForApplication(); private void GetImageFile() { WebClient client = new WebClient(); client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted); client.OpenReadAsync(new Uri("http://mywebsite.com/1.jpg"),client); } void client_OpenReadCompleted(object sender,OpenReadCompletedEventArgs e) { var resInfo = new StreamResourceInfo(e.Result,null); var reader = new StreamReader(resInfo.Stream); byte[] contents; using (BinaryReader bReader = new BinaryReader(reader.BaseStream)) { contents = bReader.ReadBytes((int)reader.BaseStream.Length); } IsolatedStorageFileStream stream = MyStore.CreateFile("10.jpg"); stream.Write(contents,contents.Length); stream.Close(); }
试试这个,也许对你很有帮助, private void PhoneApplicationPage_Loaded(object sender,RoutedEventArgs e) { HttpWebRequest reqest1 = (HttpWebRequest)WebRequest.Create(url); reqest1.BeginGetResponse(DownloadImageCallback,reqest1); Thread.Sleep(1000); } void DownloadImageCallback(IAsyncResult result) { HttpWebRequest req1 = (HttpWebRequest)result.AsyncState; HttpWebResponse responce = (HttpWebResponse)req1.EndGetResponse(result); Stream s = responce.GetResponseStream(); Deployment.Current.Dispatcher.BeginInvoke(() => { string directory = "Images"; if (!myStore.DirectoryExists(directory)) { myStore.CreateDirectory(directory); using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication()) { using (var isoFileStream = myIsolatedStorage.CreateFile(directory + "//yourfilename.jpg")) { var wb = new WriteableBitmap(bitimage); var width = wb.PixelWidth; var height = wb.PixelHeight; Extensions.SaveJpeg(wb,isoFileStream,width,height,100); } } } else { using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication()) { if (myIsolatedStorage.FileExists(directory + "//yourfilename.jpg")) { myIsolatedStorage.DeleteFile(directory + "//yourfilename.jpg"); } using (var isoFileStream = myIsolatedStorage.CreateFile(directory + "//yourfilename.jpg")) { var wb = new WriteableBitmap(bitimage); var width = wb.PixelWidth; var height = wb.PixelHeight; Extensions.SaveJpeg(wb,100); } } } }); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows – 如何监控硬盘是否处于待机状态?
- windows-installer – 设置UAC提升时间过长
- windows – 有没有办法延迟强制重启?
- winapi – 避免UAC,但使用Windows服务启动升级过程
- windows-runtime – 在WinRT中更改UI文化
- windows-phone-8 – WP8应用程序是否有任何认证工具包?
- windows-8 – 尽管代码正确,Windows 8 Metro Tiles仍无法在
- windows10远程桌面连接身份验证错误:函数不受支持,这可能
- windows – AutoHotKey可以切换键映射吗?
- .net-4.0 – Windows工作流4.0 InstancePersistenceCommand