windows phone 摄像头得到图片是旋转90°

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows phone 摄像头得到图片是旋转90°相关的知识,希望对你有一定的参考价值。

我上个随笔讲到,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°的主要内容,如果未能解决你的问题,请参考以下文章

如何将图片另存为从 windows phone 7 到服务器的文件路径

Windows Phone开发(19):三维透视效果

使用 Cordova/Phonegap 保存从手机摄像头拍摄的图像 Windows Phone 7

Android相机旋转肖像模式图片

使用前置摄像头时需要镜像视频方向和手柄旋转

演示Windows Phone 7在监视器上