Beispiel #1
0
 //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);
     }
 }
Beispiel #2
0
        //원본 스트림이 아니면 안되고(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);
            }
        }