private async Task <bool> SaveInternal(ImageViewerPostViewModel item) { Stream responseStream; try { HttpResponseMessage response = await RequestManager.Current.GetAsync(item.ImageSrc); responseStream = await response.Content.ReadAsStreamAsync(); } catch { return(false); } BitmapImage bi = new BitmapImage() { CreateOptions = BitmapCreateOptions.None }; try { bi.SetSource(responseStream); } catch (Exception ex) { if (ex.HResult == -2146233088) { // Image unrecognized return(false); } else { throw; } } WriteableBitmap wbmp = new WriteableBitmap(bi); using (MemoryStream ms = new MemoryStream()) { try { wbmp.SaveJpeg(ms, bi.PixelWidth, bi.PixelHeight, 0, 95); ms.Seek(0, SeekOrigin.Begin); new MediaLibrary().SavePicture(item.RenamedFileName + "", ms); } catch { return(false); } finally { bi.UriSource = null; bi = null; wbmp = null; } } return(true); }
private async Task<bool> SaveInternal(ImageViewerPostViewModel item) { Stream responseStream; try { HttpResponseMessage response = await RequestManager.Current.GetAsync(item.ImageSrc); responseStream = await response.Content.ReadAsStreamAsync(); } catch { return false; } BitmapImage bi = new BitmapImage() { CreateOptions = BitmapCreateOptions.None }; try { bi.SetSource(responseStream); } catch (Exception ex) { if (ex.HResult == -2146233088) { // Image unrecognized return false; } else { throw; } } WriteableBitmap wbmp = new WriteableBitmap(bi); using (MemoryStream ms = new MemoryStream()) { try { wbmp.SaveJpeg(ms, bi.PixelWidth, bi.PixelHeight, 0, 95); ms.Seek(0, SeekOrigin.Begin); new MediaLibrary().SavePicture(item.RenamedFileName + "", ms); } catch { return false; } finally { bi.UriSource = null; bi = null; wbmp = null; } } return true; }