iOS拍的图片上传到服务器(阿里云)旋转

简介:

用ghost发文章(发到阿里云的CDN)的时候,发现上传的图片旋转了。比如这张图:

CDN效果

但是,在我的Mac本地上是正常的。像这样子的:

mac效果

打开预览的效果也是正常的。

mac预览效果

然后,我傻傻以为是Ghost的问题。其实并不是。

这里,要开始引出EXIF这个概念。


EXIF

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

图像一旦被修改,Exif 信息可能会永久丢失,故编辑 Exif 必须使用专门的软件。

可以理解成,用来记录照片属性和拍摄数据的。

(可以附加于jpeg等文件中,但png图片中不会有。)


Orientation

EXIF中,有一个 Orientation 参数,用于记录照片生成时的方向。 
一共有8个值,分别是:1、2*、3、4*、5*、6、7*、8。

正常情况下,拍照只会出现是1、6、3、8这几个值。2、5、4、7相当于镜像,照像时不会出现这几种情况。1、6、3、8的效果分别是:

  • 1:0度(比如正常情况下我是这样拍摄的)

    1

  • 6:逆时针90度回到正常

    6

  • 3:180度回到正常

    3

  • 8:顺时针90度回到正常

    8


Mac上为什么会是正常的呢?

Mac之所以会显示正常,是因为Mac的图片“预览”功能会自动根据Orientation参数处理照片方向。但实际上,照片是旋转的。

  • 来看看实际参数是怎样的:

    用Mac的预览 工具 - 显示检查器

    查看图片的EXIF

    这里可以看到方向是6(逆时针旋转90度将回到正常)

    顺带说一下,可以看到好多EXIF参数信息(我是用pad拍的):

    参数信息


Windows平台上呢?

windows上默认的图片预览工具没有做处理,如果拍摄的时候是旋转的,那显示的也是旋转的。


在Mac上怎么转回来?

  1. 用Mac的“预览”功能打开,再Command + S保存,参数就改变了,上传的图片就正了。

    修正后的图片

    于是, Orientation参数就从6(逆时针旋转90度回到正常)变为了1(正常)。

    6变为1

  2. 利用专业的修改EXIF的工具

    暂时没有用过,欢迎推荐好用的工具。


关于前端获取EXIF

有一个框架可以读取图像的原始数据:Exif.js。IE10以下不兼容。

demo效果:http://code.ciaoca.com/javascript/exif-js/demo/ 
github地址:https://github.com/jseidelin/exif-js/

目录
相关文章
|
2天前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
19 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
2天前
|
存储 机器学习/深度学习 应用服务中间件
阿里云倚天云服务器实例:计算型c8y、通用型g8y、内存型r8y实例介绍
阿里云倚天云服务器是基于阿里云自研的倚天710 ARM架构CPU打造的高性能计算产品系列,它依托先进的第四代神龙架构,旨在为用户提供稳定可预期的超高效能体验。倚天云服务器在存储、网络性能及计算稳定性方面实现了显著提升,主要得益于其芯片级的快速路径加速技术。本文将深度解析阿里云倚天云服务器的计算型c8y、通用型g8y、内存型r8y实例,探讨其优势及适用场景,以供选择参考。
|
2天前
|
网络协议 应用服务中间件 网络安全
阿里云轻量应用服务器的使用限制
阿里云轻量应用服务器的使用限制
|
4天前
阿里云国际版购买了服务器后如何下载发票?
阿里云国际版购买了服务器后如何下载发票?
|
4天前
|
弹性计算 安全 Linux
阿里云国际版ECS云服务器ping不通的原因分析
阿里云国际版ECS云服务器ping不通的原因分析
|
4天前
|
弹性计算 网络协议 数据库
在阿里云国际站上解析域名到服务器详细教程
在阿里云国际站上解析域名到服务器详细教程
|
4天前
|
监控 安全 Windows
阿里云国际版Windows服务器磁盘空间不足该怎么办?
阿里云国际版Windows服务器磁盘空间不足该怎么办?
|
4天前
|
弹性计算
阿里云国际版ECS云服务器欠费会自动释放吗?
阿里云国际版ECS云服务器欠费会自动释放吗?
|
4天前
|
弹性计算 安全 关系型数据库
阿里云国际版远程连接Windows系统的ECS服务器时提示协议错误
阿里云国际版远程连接Windows系统的ECS服务器时提示协议错误
|
4天前
|
弹性计算 关系型数据库 数据安全/隐私保护
阿里云国际版如何配置Windows服务器的虚拟内存
阿里云国际版如何配置Windows服务器的虚拟内存