//LockscreenSelectionPage에서 다운로드후 개별건을 저장할 때 및 이미지 상세보기(PictuerPage)에서 단건 저장할 때 호출 //락스크린 이미지는 자동생성으므로 중심을 기준으로 잘라내기 사용함. public static void Save(string name, WriteableBitmap bitmap) { using (MemoryStream ms = new MemoryStream()) { bitmap.SaveJpeg(ms, bitmap.PixelWidth, bitmap.PixelHeight, 0, 100); JpegHelper.Save(name, bitmap, ms, true); } }
//원본 스트림이 아니면 안되고(WriteableBitmap등 다른 객체를 거치면 정보를 뽑아내지 못함), using을 사용하면 Disposable이라 스트림이 닫힌다. //그러한 이유로 사용 보류 /* * public static JpegOrientation GetOrientation(string name, Stream stream) * { * JpegOrientation jo = new JpegOrientation(); * * if (name.Contains(".jpg") || name.Contains(".jpeg")) * { * try * { * using (MemoryStream ms = new MemoryStream()) * { * stream.CopyTo(ms); * ms.Seek(0, SeekOrigin.Begin); * using (ExifReader reader = new ExifReader(stream)) * { * ushort orientation = 0; * reader.GetTagValue(ExifTags.Orientation, out orientation); * switch (orientation) * { * case 1: * jo.Angle = 0; * jo.IsFlip = false; * break; * case 2: * jo.Angle = 0; * jo.IsFlip = true; * jo.FlipMode = WriteableBitmapExtensions.FlipMode.Vertical; * break; * case 3: * jo.Angle = 180; * jo.IsFlip = false; * break; * case 4: * jo.Angle = 180; * jo.IsFlip = true; * jo.FlipMode = WriteableBitmapExtensions.FlipMode.Vertical; * break; * case 5: * jo.Angle = 90; * jo.IsFlip = true; * jo.FlipMode = WriteableBitmapExtensions.FlipMode.Horizontal; * break; * case 6: * jo.Angle = 90; * jo.IsFlip = false; * break; * case 7: * jo.Angle = 270; * jo.IsFlip = true; * jo.FlipMode = WriteableBitmapExtensions.FlipMode.Horizontal; * break; * case 8: * jo.Angle = 270; * jo.IsFlip = false; * break; * } * } * } * } * catch (ExifLibException e) * { * System.Diagnostics.Debug.WriteLine(e.Message); * } * } * * return jo; * } */ //PhotoChooserTask를 사용하는 락스크린 싱글이미지 추가에서 호출됨 //락스크린 이미지는 자동생성으므로 중심을 기준으로 잘라내기 사용함. public static void Save(string name, Stream stream) { using (MemoryStream ms = new MemoryStream()) { stream.CopyTo(ms); WriteableBitmap bitmap = BitmapFactory.New(0, 0).FromStream(ms); JpegHelper.Save(name, bitmap, ms, true); } }