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/

目录
相关文章
|
Swift iOS开发
iOS Swift使用Alamofire请求本地服务器报错-1002
iOS Swift使用Alamofire请求本地服务器报错-1002
468 1
|
存储 缓存 编解码
实现iOS平台的高效图片缓存策略
【4月更文挑战第23天】在移动应用开发领域,尤其是图像处理密集型的iOS应用中,高效的图片缓存策略对于提升用户体验和节省系统资源至关重要。本文将探讨一种针对iOS平台设计的图片缓存方案,该方案通过结合内存缓存与磁盘缓存的多层次结构,旨在优化图片加载性能并降低内存占用。我们将深入分析其设计理念、核心组件以及在实际场景中的应用效果,同时对比其他常见缓存技术的优势与局限。
|
存储 Web App开发 Android开发
iOS不支持WebP格式图片解决方案和iPhone 7及其后硬件拍照的HEIC格式图片
iOS不支持WebP格式图片解决方案和iPhone 7及其后硬件拍照的HEIC格式图片
1644 1
iOS不支持WebP格式图片解决方案和iPhone 7及其后硬件拍照的HEIC格式图片
|
Linux 数据库 iOS开发
超级签名源码/超级签/ios分发/签名端本地linux服务器完成签名
该系统完全在linux下运行,不存在使用第三方收费工具,市面上很多系统都是使用的是第三方收费系统,例如:某心签名工具,某测侠等,不开源而且需要每年交费,这种系统只是在这些工具的基础上套了一层壳。请需要系统的放大你们的眼睛。
346 0
按钮的image图片是非圆角,直接对UIButton设置圆角,iOS13系统没有圆角效果的问题及解决方案
按钮的image图片是非圆角,直接对UIButton设置圆角,iOS13系统没有圆角效果的问题及解决方案
187 0
|
移动开发 网络协议 安全
iOS审核在ipv6网络下无法访问服务器的问题及解决方案
iOS审核在ipv6网络下无法访问服务器的问题及解决方案
616 0
|
移动开发 iOS开发 Perl
iOS客户端和h5页面的互相调用,服务器和客户端间通信方式
iOS客户端和h5页面的互相调用,服务器和客户端间通信方式
511 0
|
6月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
544 10
|
6月前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。
|
6月前
|
弹性计算 ice
阿里云4核8g服务器多少钱一年?1个月和1小时价格,省钱购买方法分享
阿里云4核8G服务器价格因实例类型而异,经济型e实例约159元/月,计算型c9i约371元/月,按小时计费最低0.45元。实际购买享折扣,1年最高可省至1578元,附主流ECS实例及CPU型号参考。
686 8

热门文章

最新文章