ios 图片逆时针旋转_iphone-IOS 竖直拍照被旋转,image-orientation 让图片自动旋转

本文目录结构

IOS 垂直拍照的时候会遇到,PC 端读取的时候,逆时针旋转了 90 度的问题;

安卓、PS 处理的,相册选择截图等不会出现这个问题;

场景说明:

这个图片在浏览器里,如果您单独打开的时候,是垂直显示的;

但是包裹在 IMG 标签内就会逆时针旋转了;

如上图;

这种情况下,因为 window 系统看图不支持方向自动识别,所以看到的还是正常垂直的;

在微信中,看到的也是没问题的(手机中用 lrz 处理过)

原理分析:

可以通过exif-js这个插件来获取图片信息;

GitHub 地址:https://github.com/exif-js/exif-js

API 文档:http://code.ciaoca.com/javascript/exif-js/$fileImg.load(function(){

// console.log("加载完成!");

var Orientation;

EXIF.getData($fileImg[0], function() {

Orientation = EXIF.getTag(this, "Orientation");

console.log("拍照Orientation值是:",Orientation);

if(Orientation===6){//

// console.log("这张图片是IOS垂直拍的");

//image-orientation: from-image

$fileImg.css({"image-orientation":"from-image"});

}

});

});

注意“Orientation”这个属性,IOS 垂直拍出来的照片,Orientation是 6;安卓手机拍出来是 1;PS 截图等处理后的照片会自动舍弃该属性,如果您获取的话,会是undefined;

可以通过 CSS 来解决;

比如火狐浏览器有一个新属性的:image-orientation ;

可通过 CanIuse 来看兼容性:http://caniuse.com/#feat=css-image-orientation

可以通过设置:image-orientation: from-image;这个属性让图片正常显示;

但是 Chrome 等浏览器并不支持;

Mozilla 官网的介绍:https://developer.mozilla.org/zh-CN/docs/Web/CSS/image-orientation

网上了下,也有类似的问题:https://stackoverflow.com/questions/24658365/img-tag-displays-wrong-orientation

DEMO:http://jsfiddle.net/7j5xJ/

国内的相关文章:http://www.jianshu.com/p/ad4501db178e

最终我的处理方式$fileImg.load(function(){

// console.log("加载完成!");

var Orientation;

EXIF.getData($fileImg[0], function() {

Orientation = EXIF.getTag(this, "Orientation");

// console.log("拍照Orientation值是:",Orientation);

if(Orientation===6){

// console.log("这张图片是IOS垂直拍的");

//image-orientation: from-image;

// $fileImg.css({"image-orientation":"from-image"});

$fileImg.css({

"transform":"rotate(90deg)",

"transform-origin":"0 0",

"marginLeft":"270px",

"paddingBottom":"80px",

"height":"auto",

"width":"360px"

});

}

});

});

因为image-orientation 这个属性就火狐和safari支持,主流chrome也不支持,所以就彻底不用这个属性;

通过变换角度并想右移动图片的 HTML 中高度;

因为上面和下面可能会有文字,所以通过padding-bottom微调下;

注意这种情况下,不能设置max-width 这个属性;

PC 中看到的如下图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/558627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Cloud Alibaba —— Sentinel 入门

导航一、什么是Sentinel1.1 Sentinel 的优点二、整合 Sentinel 演示三、Sentinel控制台与微服务通信的原理四、Sentinel 流控演示一、什么是Sentinel Sentinel 是阿里开源的用于提供微服务架构容错方案的组件。它以流量作为切入点,从流量控制、熔断降级、系统负载保…

websocket 获取连接id_websocket建立连接时能传递参数吗

展开全部您可以这样!在js传参的时候参数就和其他地址一样传就行 比如var wsUrl ws://localhost:8080/ScadaWebSocket/ScadaSocket/我的参数webSocketnew WebSocket(wsUrl);后台的类上面的注解这样写ServerEndpoint(value "/ScadaSocket/{param}")注意上面的花3231…

Spring Cloud Alibaba —— Sentinel 详细使用

导航引言一、Sentinel的两个基本概念二、流控规则2.1 基本选项2.2 高级选项三、熔断(降级)规则四、热点规则五、授权规则(了解)六、系统规则(了解)七、自定义异常返回八、SentinelResource九、Sentinel 规则持久化(待补…

扫地机器人单扫和双扫_小米扫拖机器人体验:再见了,拖把君

小米在2016年首次推出了扫地机器人,凭借产品力和性价比,可以说为中国家庭的智能清洁概念普及,立下一功。不过,近两年因为一直没有推出扫拖一体产品,急得民间高手都开始自己动手给米家扫地机改造拖地功能了,…

Spring Cloud —— Gateway 服务网关

导航一、什么是服务网关二、业界常见网关组件三、Spring Cloud Gateway四、Gateway 快速入门4.1 创建 gateway 服务4.2 添加 gateway 依赖和 nacos 依赖4.3 配置路由信息4.4 测试路由转发五、Gateway 执行流程六、Gateway 断言6.1 内置路由断言工厂6.2 自定义路由断言工厂七、G…

图形显卡_选核芯显卡还是独立显卡?这才是决定笔记本电脑性能的关键

买笔记本电脑的时候,选核芯显卡还是独立显卡是很多朋友纠结的问题。核芯显卡是建立在和处理器同一内核芯片上的图形处理单元,而独立显卡拥有单独的图形核心和独立的显存。那么具体哪个更好呢?这里就来介绍一下。两者各自的特点核芯显卡和传统…

Spring Cloud —— 链路追踪技术

导航一、什么是链路追踪二、Spring Cloud Sleuth2.1 相关概念三、Sleuth 入门案例四、Zipkin 的集成4.1 Zipkin 介绍4.2 Zipkin 服务端安装4.3 Zipkin 客户端安装五、Zipkin 数据持久化5.1 MySQL 数据持久化5.2 Elasticsearch 数据持久化一、什么是链路追踪 在大型系统的微服务…

使用vim的重不重要_VIM高级操作,经常用vim的应该多学习。多开发效率很有大帮助!...

Vim是号称“编辑器之神”的文本编辑软件,自从接触Vim以来,基本上都是用Vim来修改和编写代码和配置文件的。但是我一直只会用最基本的命令,虽然把HJKL的定位键已操纵地很熟练。但是Vim其他强大的地方却几乎没有触及过。学一样东西,…

bool类型数组转换成一个整数_「PHP」常用的数组键值操作函数,面试重点

数组键值操作函数1、array_values ( array $array ) : array返回数组中所有的值的数组$a[name>jikeshiguangji,age>26];print_r(array_values($a));运行结果:$aarray("name">"jikeshiguangji","age">"26");pri…

Spring Cloud —— 消息队列与 RocketMQ

导航一、什么是 MQ二、常见的 MQ 产品三、RocketMQ 概念与架构设计3.1 基本概念1、消息模型(Message Model)2、生产者与消费者(Producer & Consumer)3、主题(Topic)4、代理服务器与名称服务&#xff08…

python 读取pdf中的文本

摘要 常常需要针对pdf进行文本分析,以下给出了两种方法用来读取pdf中的文字 方法一 pypdf2 pip install pypdf2 import PyPDF2 filename xxx.pdfwith open(filename, rb) as file:# 创建一个PDF阅读器对象reader PyPDF2.PdfReader(file)# 遍历PDF中的每一页for…

惠普打印机只打印一半_惠普打印机如何安装 惠普打印机加墨方法【介绍】

对于多数上班族和学生党来说,平时办公和学习不仅仅离不开 电脑 ,与此同时还需要 打印机 起到辅助作用。目前市场上的打印机品牌较多,惠普就是其中知名度较高的一个牌子,拥有大批的消费群体。但是有些人在将打印机买回来之后&#…

Spring Cloud —— RocketMQ 的消息类型

导航引言一、普通消息1.1 可靠同步发送1.2 可靠异步发送1.3 单向发送二、顺序消息三、事务消息3.1 什么是事务消息3.2 事务消息示例1、编写本地事务逻辑2、发送半事务消息3、注册本地事务监听器4、测试引言 本文承接《Spring Cloud —— 消息队列与 RocketMQ》 RocketMQ 提供…

城市运行一网统管_全国率先!“一屏观天下、一网管全城”,临港城市运行“一网统管”平台启动建设...

景区里是否出现了大客流?渣土车是否有违规?工地上有没有安全隐患?……8月12日,临港新片区城市运行“一网统管”平台正式启动建设,临港新片区城市运行“一网统管”中长期规划也正式发布,通过构建具有临港新片…

Spring Cloud Alibaba —— Nacos Config 配置中心

导航引言一、什么是配置中心二、常见的配置中心组件三、Nacos Config 入门四、Nacos Config 动态配置4.1 硬编码方式(默认支持动态生效)4.2 属性注入五、配置共享5.1 相同微服务不同环境间共享5.2 不同微服务配置共享六、Nacos Config 的几个概念总结引言…

codesys com库_CODESYS在线库,酷德网镜像站启用

近期由于国内网络问题,造成 stroe.codesys.com 网站无法访问。在线库无法下载。为了不影响广大CODESYS用户的正常使用,酷德网建立stroe.codesys.com的国内镜像站:主站: https://store.hicodesys.com:8421/CODESYSLibs/备用站: …

分布式事务的解决思路与方案

导航一、事务的种类与场景二、分布式事务解决方案2.1 全局事务2.2 可靠消息事务2.3 最大努力通知2.4 TCC 事务三、TCC 模式常见问题3.1 二阶段幂等3.2 空回滚3.3 资源悬挂一、事务的种类与场景 本地事务实际上就是指数据库的事务,参考《MySQL —— 事务与隔离级别总…

css3 下边框缓缓划过_干货来袭!web前端开发工程师必看之如何使用CSS3实现瀑布流效果?...

首先,我们来看一下什么是瀑布流布局效果,比如电商网站 蘑菇街原理图:在一个大盒子里,放置多个小盒子,小盒子的大小可以不一致,长短不一样,呈现一种瀑布流的效果。使用CSS3S实现只需要如下4步:1. 准备图片素材2. 书写相应HTML结构3…

Spring Cloud Alibaba —— Seata 分布式事务框架

导航一、Seata 介绍二、Seata 的工作原理2.1 三个角色2.2 工作流程三、Seata AT 工作机制3.1 一阶段3.2 二阶段四、案例演示(待补充)一、Seata 介绍 官网:Seata 官网 Seata 是2019 年阿里巴巴中间件团队发起的开源项目,其前身是…

云麦体脂秤华为体脂秤_华为、小米和有品体脂秤哪个品牌好?三款智能体脂秤横评结果排行...

如今生活水平的提高,也让更多人开始关注健康问题。由于大部分时间都忙于工作,本身就运动少、体重超标等等。如果长期得不到控制的话,会造成日后脂性肝炎、肝纤维化、肝癌,想想都可怕,在意识到这样的严重性,…