相机拍摄的图像方向问题

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. Linux运维学习笔记-目录知识点总结

    目录知识点总结: Note: 1.创建一个/server/scripts目录,用于存放脚本(命令:mkdir -p /server/scripts) 2.安装软件时,安装路径统一为/usr/local ...

  2. nginx中使用 md5

    core/ngx_md5.h 头文件 /* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_MD5_H_ ...

  3. 排列算法(reverse...rotate...next_permutation)

    #include <iostream> #include <algorithm> #include <cstring> using namespace std; i ...

  4. [CLPR] 卷积神经网络的结构

    本文翻译自: http://www.codeproject.com/Articles/16650/Neural-Network-for-Recognition-of-Handwritten-Digi ...

  5. 深入理解java虚拟机,类加载

    1,通过使用静态字段,只有真正定义这个字段的类才会被初始化,(子类不初始化,父类初始化 2,new数组,不初始化 3,通过类来调用一些类的常量,可以不初始化类,(常量在编译期,被优化到NotIniti ...

  6. bzoj 4069~4071 APIO2015

    T1 从高到底按位确定答案 A=1时f[i]表示前i个数合法的划分至少需要分出几段,时间复杂度$O(n^2log(ans))$ A>1时f[i][j]表示前i个数划分为j段是否可能合法,转移显然 ...

  7. selenium 笔记 2018

    1.指定浏览器驱动:dr = webdriver.Firefox(executable_path = '/Users/xxx/Documents/selenium_py/geckodriver/gec ...

  8. java web 程序---购物车项目内容:

    1.项目介绍   典型电子商务系统(在线购物平台).模拟了当当系统部分功能.2.功能需求    1)用户管理模块(3天)user         实现登录.注册功能    2)产品浏览模块(2天)ma ...

  9. 走迷宫(用队列bfs并输出走的路径)

    #include <iostream> #include <stack> #include <string.h> #include <stdio.h> ...

  10. Java 8 : Stream API 练习

    //店铺属性类 public class Property { String name; // 距离,单位:米 Integer distance; // 销量,月售 Integer sales; // ...