我上个随笔讲到,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°的更多相关文章

  1. 关于android中调用系统拍照,返回图片是旋转90度

    转载博客:http://blog.csdn.net/walker02/article/details/8211628 项目开发中遇到的一个问题,对于三星手机在做手机照片选择时出现图片显示不正常,研究后 ...

  2. iOS开发- 相机(摄像头)获取到的图片自动旋转90度解决办法

    http://blog.csdn.net/hitwhylz/article/details/39518463

  3. ios端浏览器拍照上传到服务器,图片被旋转90度 php 解决方案

    1.可以通过前端进行解决,本案例通过后端解决的 判断请求的浏览器的ua,如果是ios浏览器则进行90度旋转 重点来了: 必须确保检测的图片是ios设备上传的完整图片,不要在前端压缩过的,因为压缩后的图 ...

  4. 解决ios横屏拍照图片自动旋转90度问题

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  5. EasyPusher手机直播编码推送之图像旋转90度后画面重复的问题

    本文转自EasyDarwin开源团队开发Holo的博客:http://blog.csdn.net/holo_easydarwin 最初在做EasyPusher手机直播的时候遇到过一个问题:手机竖屏推送 ...

  6. EasyPusher手机直播图像旋转90度后画面重复的问题

    本文转自:http://blog.csdn.net/holo_easydarwin/article/details/51147379 最初在做EasyPusher手机直播的时候遇到过一个问题:手机竖屏 ...

  7. ios手机竖屏拍照图片旋转90°问题解决方法

    手机拍照会给图片添加一个Orientaion信息(即拍照方向),如下: 用ios手机拍照,系统会给图片加上一个方向的属性, ios相机默认的拍照方向是后摄Home键在右为正,前摄Home键在左为正. ...

  8. Winform中使用FastReport的PictureObject时通过代码设置图片源并使Image图片旋转90度

    场景 FastReport安装包下载.安装.去除使用限制以及工具箱中添加控件: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  9. js图片左右旋转

    图片显示 <p> <a href="images/example2.jpg" rel="lightbox-group" title=" ...

随机推荐

  1. 【BZOJ-3553】三叉神经树 树链剖分

    3553: [Shoi2014]三叉神经树 Time Limit: 160 Sec  Memory Limit: 256 MBSubmit: 347  Solved: 112[Submit][Stat ...

  2. bzoj 1066 蜥蜴

    最大流. 建图:首先将每根柱子拆成两个点. 每根柱子的入点向出点连一条容量为柱子高度的边. 每根柱子的出点向可以到达的柱子的入点连一条容量为正无穷的边. 源点向每根初始有蜥蜴的柱子的入点连一条容量为一 ...

  3. C#之数组篇

    大杂烩 一.数组初始化 1.一维数组 String[] str = new String[3] { "1","2","3"};        ...

  4. 面试题目——《CC150》栈与队列

    面试题3.1:描述如何只用一个数组来实现三个栈. 方法1:固定分割 方法2:弹性分割(较难) package cc150; public class ArrayStack { public stati ...

  5. C#汉字字母数字正则

    http://novell.me/master-diary/2014-11-15/regular-express-csharp-example.html https://msdn.microsoft. ...

  6. android权限大全

    访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permiss ...

  7. unix编程书中的 ourhdr.h代码

    真心不知到里面写的具体什么意思,先记下吧. /*Our own header, to be included after all standard system headers*/ #ifndef _ ...

  8. IOS系统基础知识

    在iOS应用中,每个程序得main函数中都调用了UIApplicationMain函数. 1 2 3 4 5 6 int main(int argc, char *argv[])  {      @a ...

  9. 如何删除PHP数组中的元素,并且索引重排(unset,array_splice)?

    如果要在某个数组中删除一个元素,可以直接用的unset,但是数组的索引不会重排: <?php $arr = array('a','b','c','d'); unset($arr[1]); pri ...

  10. Swift3.0P1 语法指南——闭包

    原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programmi ...