相机拍摄的图像方向问题

Description

很多时候,我们习惯把手机相机拍摄的图像在电脑上面查看。有的时候在手机上面看图像是正的,可是电脑端查看是反的;有的时候手机和电脑都是反的;有的时候都是正的;还有的时候电脑是正的,手机是反的;所有的这些不一致现象,都是和图像的拍摄方向Orientation有关。

What's Orientation of image

对于单反相机,不太清楚。对于手机,我们知道手机拿在手中照相的时候,有竖直的放式,同时也有横向的方式,又由于目前的手机内部都有陀螺仪和重力感应,所以你拍摄时候的手机方式是可以知道的,这就是图像的方向,至于什么方式才是正方向,不同的手机类型设置不一样,自己可以测试一下。图像的方向,就是相机拍摄时候的方向,一般为上下左右四个方向。

How to see the Orienation of one image

信息一般存储在Exif中,

  1. 图像的属性信息;
  2. 第三方的看图软件;
  3. Linux command exif

Hot to get exif infomation in programe

  1. exif.js
  2. c exif

Notes

  1. 对于苹果手机, 在手机旋转后,进行的照相. 会保存当前的图像有方向的数据. 然后,在相册或在其他地方使用的时候, 系统会进行自动的根据orientation进行旋正. 这是苹果系统自己的功能.
  2. 有的安卓手机, 不管你的手机是否旋转, 照相的时候, 保存的图像都是旋正的图像. 也就是orientation == 1.
  3. 有的手机浏览器的img标签,会自动根据exif orientation自动进行纠正旋转。可是使用canvas读取图像的数据进行绘制的时候,却是使用的真是数据,不进行任何的旋转。

Reference

exif
stackoverflow
exif orientation tag
C get exif Info


Orientation of phone Image的更多相关文章

  1. android:configChanges="keyboard|keyboardHidden|orientation|screenSize"

    <activity android:name="xxxActivity" android:configChanges="keyboard|keyboardHidde ...

  2. 七牛--关于图片上传方向不统一的问题--主要关于图片EXIF信息中旋转参数Orientation的理解

    [图片引用方向纠正]直接在图片后面添加 ?imageMogr/auto-orient eg:http://data.upfitapp.com/data/2016/10/18/1629114767606 ...

  3. iOS Orientation bug

    Every September means pain for iOS developers- you need to make sure your old apps/code run on the n ...

  4. 图片Exif 信息中Orientation的理解和对此的处理

    这个问题是在用七牛上传图片后获取宽高时发现的,一张图片,用图片浏览器打开始终是竖图,但是查看属性或者用七牛获取宽高,却发现宽大于高,也就是在属性中这是个横图.这样导致客户端用该宽高来展示图片会出现问题 ...

  5. gravity、layout_gravity及orientation

    gravity.layout_gravity及orientation 最近在弄一个简单的界面:横向,添加一张准备好的背景图,在界面右边居中放置一个按钮.实现过程中发现对布局的主要属性没有想象中地那么熟 ...

  6. 七牛:关于图片 EXIF 信息中旋转参数 Orientation 的理解

    EXIF(Exchangeable Image File)是 “可交换图像文件” 的缩写,当中包含了专门为数码相机的照片而定制的元数据,可以记录数码照片的拍摄参数.缩略图及其他属性信息,简单来说,Ex ...

  7. orientation和gravity的区别

    orientation:决定UI组件是按行还是列显示 gravity:指定文字对齐方式.

  8. DCM TUTORIAL – AN INTRODUCTION TO ORIENTATION KINEMATICS (REV 0.1)

    原英文地址:dcm_tutorial 感觉这篇文章还是很有学习价值的,所以就抽出了一些时间对本文进行的翻译.下面这个好多人用的算法就是一种DCM 滤波器. //==================== ...

  9. [转]DCM Tutorial – An Introduction to Orientation Kinematics

    原地址http://www.starlino.com/dcm_tutorial.html Introduction This article is a continuation of my IMU G ...

  10. PHP 中 Orientation 属性判断上传图片是否需要旋转(转)

    <?php $image = imagecreatefromstring(file_get_contents($_FILES['image_upload']['tmp_name'])); $ex ...

随机推荐

  1. Java方向如何准备BAT技术面试答案(汇总版)

    这个主题的内容之前分三个篇幅分享过,导致网络上传播的比较分散,所以本篇做了一个汇总,同时对部分内容及答案做了修改,欢迎朋友们吐槽.转发.因为篇幅长度和时间的原因,部分答案我没有亲自总结.更多精彩内容请 ...

  2. 6-20 No Less Than X in BST(20 分)

    You are supposed to output, in decreasing order, all the elements no less than X in a binary search ...

  3. 6-19 Count Connected Components(20 分)

    Write a function to count the number of connected components in a given graph. Format of functions: ...

  4. sourcetree回退到历史节点

    1. 原理 原理,我们都知道Git是基于Git树进行管理的,要想要回滚必须做到如下2点: 本地头节点与远端头节点一样(Git提交代码的前提条件):于本地头节点获取某次历史节点的更改.说的有点抽象,以图 ...

  5. Spring Could 问题

    作为流行的微服务框架,Spring Could实用但不完美,比如说它只针对Java语言,坚持REST协议做微服务间的通讯等. Spring Cloud虽然集成了众多组件,可以构建一个完整的微服务应用, ...

  6. Django的认证系统 auth模块

    Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Djang ...

  7. Guid.NewGuid().ToString()生成唯一码js

    Guid.NewGuid().ToString() 生成唯一码,用户生成随机id 生成唯一编码,版本控制对比等. //表示全局唯一标识符 (GUID). function Guid(g) { var ...

  8. expect学习笔记及用法

    expect学习笔记及实例详解 expect的基本用法 expect用法

  9. jetty之嵌入式开发

    一.Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境.Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布.开发人员可 ...

  10. mysql如何处理外码约束

    http://hi.baidu.com/wangzhiqing999/item/e74b2be28be445a3c00d7528 MySQL 外键约束 -- 创建测试主表. ID 是主键.CREATE ...