日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁編程開發(fā)其它知識 → Windows Phone 照片角度處理開發(fā)技巧

      Windows Phone 照片角度處理開發(fā)技巧

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時(shí)間:2011/12/18 22:17:12字體大。A-A+

      作者:西西點(diǎn)擊:34次評論:0次標(biāo)簽: WindowsPhone

      • 類型:WM|WP7平臺大小:1.5M語言:中文 評分:3.6
      • 標(biāo)簽:
      立即下載

      在實(shí)際項(xiàng)目中,可能需要用戶從相冊中選擇圖片然后進(jìn)行相應(yīng)的處理。但是不知道大家有沒有發(fā)現(xiàn)這樣一種情況,就是手機(jī)里看是豎著的,但是上傳到微博或者哪里的時(shí)候確實(shí)橫著的。一種情況是你拿手機(jī)豎著拍照得話,照片就是橫著的,雖然在手機(jī)里看是豎著的。(可能有點(diǎn)抽象,遇到此情況的同學(xué)應(yīng)該深有感觸)

      那么我們在客戶端中應(yīng)該如何處理這種情況呢?一種想法是獲取圖片的角度,如果是90°,就把照片翻轉(zhuǎn)過來,再進(jìn)行相應(yīng)的操作。那這樣就涉及到2個(gè)問題

      1. 如何獲取相冊中照片的角度

      2. 如何翻轉(zhuǎn)已有的照片(流、或者Bitmap或者WriteableBitmap)

      查看了系統(tǒng)的API,并沒有對相片的角度提供支持,但是我們可以使用ExifLib開源庫去做。

      下述的方法就是獲取選取圖片的角度的

      /// <summary>
      /// get angle of photo
      /// </summary>
      /// <param name="stream">photo stream</param>
      /// <param name="filename">photo name</param>
      /// <returns>angle of the photo</returns>
      public static int GetAngle(Stream stream, string filename)
      {
          ExifLib.ExifOrientation _orientation;
          int _angle = 0;
          stream.Position = 0;
          JpegInfo info = ExifReader.ReadJpeg(stream, filename);
          if (info!=null)
          {
              _orientation = info.Orientation;
              switch (info.Orientation)
              {
                  case ExifOrientation.TopLeft:
                  case ExifOrientation.Undefined:
                      _angle = 0;
                      break;
                  case ExifOrientation.TopRight:
                      _angle = 90;
                      break;
                  case ExifOrientation.BottomRight:
                      _angle = 180;
                      break;
                  case ExifOrientation.BottomLeft:
                      _angle = 270;
                      break;
      
              }
          }
          return _angle;
      }

      獲取到角度后,如果角度是90°,即是反的,我們需要將其糾正過來,可以使用如下的方法:

      private Stream RotateStream(Stream stream, int angle)
      {
          stream.Position = 0;
          if (angle % 90 != 0 || angle < 0) throw new ArgumentException();
          if (angle % 360 == 0) return stream;
      
          BitmapImage bitmap = new BitmapImage();
          bitmap.SetSource(stream);
          WriteableBitmap wbSource = new WriteableBitmap(bitmap);
      
          WriteableBitmap wbTarget = null;
          if (angle % 180 == 0)
          {
              wbTarget = new WriteableBitmap(wbSource.PixelWidth, wbSource.PixelHeight);
          }
          else
          {
              wbTarget = new WriteableBitmap(wbSource.PixelHeight, wbSource.PixelWidth);
          }
      
          for (int x = 0; x < wbSource.PixelWidth; x++)
          {
              for (int y = 0; y < wbSource.PixelHeight; y++)
              {
                  switch (angle % 360)
                  {
                      case 90:
                          wbTarget.Pixels[(wbSource.PixelHeight - y - 1) + x * wbTarget.PixelWidth] = wbSource.Pixels[x + y * wbSource.PixelWidth];
                          break;
                      case 180:
                          wbTarget.Pixels[(wbSource.PixelWidth - x - 1) + (wbSource.PixelHeight - y - 1) * wbSource.PixelWidth] = wbSource.Pixels[x + y * wbSource.PixelWidth];
                          break;
                      case 270:
                          wbTarget.Pixels[y + (wbSource.PixelWidth - x - 1) * wbTarget.PixelWidth] = wbSource.Pixels[x + y * wbSource.PixelWidth];
                          break;
                  }
              }
          }
          MemoryStream targetStream = new MemoryStream();
          wbTarget.SaveJpeg(targetStream, wbTarget.PixelWidth, wbTarget.PixelHeight, 0, 100);
          return targetStream;
      }

        金山手機(jī)助手
        (130)金山手機(jī)助手
        金山手機(jī)助手是智能手機(jī)的資源獲取平臺。金山手機(jī)控幫助手機(jī)使用者用最省流量最快捷最方便最安全的方式獲取網(wǎng)絡(luò)資源,只需通過數(shù)據(jù)線的方式將手機(jī)連接至,便可以通過金山手機(jī)助手下載海量應(yīng)用,電子書視頻音樂圖片應(yīng)有盡有,游戲應(yīng)用軟件一應(yīng)俱全。還可以通過它進(jìn)行應(yīng)用管理任務(wù)管理,圖片視頻音樂等導(dǎo)入導(dǎo)出等等。功能特色金山手機(jī)控除了自有軟件游戲?qū)殠欤提供超過萬款手機(jī)資源,不花手機(jī)流量,一鍵下載安裝。金山手機(jī)控提供的...更多>>
        91手機(jī)助手
        (17)91手機(jī)助手
        手機(jī)助手擁有無比強(qiáng)大的功能,可以方便快捷的管理和安裝手機(jī)應(yīng)用,清理無效文件,備份通訊錄,收發(fā)短信等。使用助手安卓版,通過電腦即可輕松管理智能手機(jī),下載海量的手機(jī)游戲手機(jī)軟件手機(jī)音樂手機(jī)鈴聲手機(jī)壁紙手機(jī)主題手機(jī)電影等各種手機(jī)應(yīng)用,大大節(jié)省手機(jī)流量。...更多>>
        • 華為手機(jī)助手(HiSuite)V5.0.1.301

          01-12 / 31.5M

          推薦理由:華為手機(jī)助手式華為為其旗下智能手機(jī)推出的一款手機(jī)管理工具,可以幫助華為手機(jī)用戶進(jìn)行管理手機(jī)數(shù)據(jù)聯(lián)系人
        • iOS/Android自動(dòng)化測試工具(iTesti

          07-13 / 136.8M

          推薦理由:iTestin云測試工具是免費(fèi)為移動(dòng)應(yīng)用開發(fā)者提供自動(dòng)化測試的工具。它覆蓋Android和iOS兩大設(shè)備平臺,為移動(dòng)應(yīng)
        • 線刷寶線刷工具V1.4.9 Build 149 官

          01-16 / 188M

          推薦理由:線刷寶是一款安卓手機(jī)智能線刷工具,如果你的手機(jī)因?yàn)樗C(jī)失敗導(dǎo)致無法正常使用的時(shí)候,線刷寶就是你的最佳
        • 奇兔刷機(jī)V7.2.1.0 官方最新版

          02-12 / 22.3M

          推薦理由:奇兔刷機(jī)是一款安卓手機(jī)刷機(jī)工具,實(shí)現(xiàn)真正一鍵式操作體驗(yàn),指導(dǎo)用戶快速完成刷機(jī)。海量高品質(zhì)ROM資源,輕松
        • 91手機(jī)助手電腦版V6.0.3.366 官方版

          01-22 / 26.4M

          推薦理由:91助手PC端V6版震撼推出啦!91助手V5版本是一款通過電腦管理iPhone、iPad、AndroidPhone、AndroidPad等多種
        • 91手機(jī)助手 for iPhone/iPad 電腦版

          11-04 / 26.1M

          推薦理由:91手機(jī)助手是由網(wǎng)龍公司推出的智能手機(jī)PC端管理工具,全面支持iPhone/WindowsMobile/Symbians60/Android的手

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)