windows phone 網路攝影機得到圖片是旋轉90°

來源:互聯網
上載者:User

標籤:

我上個隨筆講到,windows phone 拍出來的photo如果直接使用是反轉了90°的。

研究了很久。。終於發現問題。其實。。這是使用習慣問題。。。

 

CameraCaptureUI 得到的photo 其實是 以第2圖水平的方向為基準的。為什麼我會這樣說呢。。讓我們看一下用模擬器拍攝的photo。注意到左邊那些字沒有。

 

再給一個水平的,可以看的更清楚。YUY2(640x480)

說白了。。其實水平才是別人老外認為的預設視角。。但是有人說。。這樣子。。豎著拍的時候就拿到的卻會橫著顯示。。很奇怪。。不怕不怕。。其實我們找到規律。。可以對得到的流進行處理。

下面是代碼

public static async Task RotateCaptureImageByDisplayInformationAutoRotationPreferences(IRandomAccessStream inStream, IRandomAccessStream outStream)        {            BitmapDecoder decoder = await BitmapDecoder.CreateAsync(inStream);            BitmapEncoder encoder = await BitmapEncoder.CreateForTranscodingAsync(outStream, decoder);            var ort = DisplayInformation.GetForCurrentView().CurrentOrientation;            Debug.WriteLine(ort);            switch (ort)            {                //The same as Portrait                case DisplayOrientations.None:                    encoder.BitmapTransform.Rotation = BitmapRotation.Clockwise90Degrees;                    break;                //The default view for capture.                 case DisplayOrientations.Landscape:                    encoder.BitmapTransform.Rotation = BitmapRotation.None;                    break;                case DisplayOrientations.Portrait:                    encoder.BitmapTransform.Rotation = BitmapRotation.Clockwise90Degrees;                    break;                case DisplayOrientations.LandscapeFlipped:                    encoder.BitmapTransform.Rotation = BitmapRotation.Clockwise180Degrees;                    break;                case DisplayOrientations.PortraitFlipped:                    encoder.BitmapTransform.Rotation = BitmapRotation.Clockwise270Degrees;                    break;                default:                    break;            }            await encoder.FlushAsync();        }

有了它。。媽媽再也不怕。。等到的圖片是旋轉90°的了。。哈哈哈

 

windows phone 網路攝影機得到圖片是旋轉90°

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.