PHP getimagesize 函数获取的图像宽高反了?

exif_read_data()解决上传图片旋转、图片反向问题,getimagesize获取图片高度宽度相反的问题,手机图片上传之后出现了反向问题,操作系统里的文件属性功能可能已经把图片给修正过了,那这时候就要把图片给旋转回来就需要用到php的exif_read_data方法。

返回结果:

Array

(

[FileName] => phpx7iokl

[FileDateTime] => 1558932683

[FileSize] => 3896832

[FileType] => 2

[MimeType] => image/jpeg

[SectionsFound] => ANY_TAG, IFD0, THUMBNAIL, EXIF, GPS, INTEROP

[COMPUTED] => Array

(

[html] => width="4000" height="3000"

[Height] => 3000

[Width] => 4000

[IsColor] => 1

[ByteOrderMotorola] => 1

[ApertureFNumber] => f/1.8

[Thumbnail.FileType] => 2

[Thumbnail.MimeType] => image/jpeg

)

[Model] => MI 6X

[Software] => wayne-user 9 PKQ1.180904.001 V10.3.2.0.PDCCNXM release-keys

[Orientation] => 6

[DateTime] => 2019:05:26 15:30:57

[YCbCrPositioning] => 1

[Exif_IFD_Pointer] => 255

[ResolutionUnit] => 2

[GPS_IFD_Pointer] => 798

[XResolution] => 72/1

[YResolution] => 72/1

[Make] => Xiaomi

[THUMBNAIL] => Array

(

[JPEGInterchangeFormat] => 969

[Orientation] => 6

[JPEGInterchangeFormatLength] => 12256

[Compression] => 6

[ResolutionUnit] => 2

[XResolution] => 72/1

[YResolution] => 72/1

)

[ISOSpeedRatings] => 400

[ExposureProgram] => 0

[FNumber] => 175/100

[ExposureTime] => 1/50

[UndefinedTag:0x9999] => {"sensor_type":"rear","mirror":false}

[SensingMethod] => 2

[SubSecTimeDigitized] => 732806

[SubSecTimeOriginal] => 732806

[SubSecTime] => 732806

[FocalLength] => 4070/1000

[Flash] => 16

[UndefinedTag:0x8889] => HHT

[MeteringMode] => 2

[SceneCaptureType] => 0

[InteroperabilityOffset] => 768

[FocalLengthIn35mmFilm] => 4

[DateTimeDigitized] => 2019:05:26 15:30:57

[ExifImageLength] => 3000

[WhiteBalance] => 0

[DateTimeOriginal] => 2019:05:26 15:30:57

[BrightnessValue] => -97/100

[ExifImageWidth] => 4000

[ExposureMode] => 0

[ApertureValue] => 161/100

[ComponentsConfiguration] =>

[ColorSpace] => 1

[SceneType] =>

[ShutterSpeedValue] => 5643/1000

[ExifVersion] => 0220

[FlashPixVersion] => 0100

[GPSTimeStamp] => Array

(

[0] => 7/1

[1] => 30/1

[2] => 56/1

)

[GPSDateStamp] => 2019:05:26

[InterOperabilityIndex] => R98

[InterOperabilityVersion] => 0100

)

//获取图片的旋转角度

$rotate = 0;

$orientation = 1;

if (function_exists('exif_read_data')) {

try { //这里使用try catch主要是解决iphone手机不支持这个方法

$exif = exif_read_data($tep_name);

} catch (Exception $exp) {

$exif = false;

}

if ($exif && isset($exif['Orientation'])){

$orientation = $exif['Orientation'];

}

} else if (preg_match('@\x12\x01\x03\x00\x01\x00\x00\x00(.)\x00\x00\x00@', file_get_contents($tep_name), $matches)) {

$orientation = ord($matches[1]);

}

//获取角度

switch($orientation) {

case 1:

$rotate = 0;

break;

case 8:

$rotate = -90;

break;

case 3:

$rotate = 0;

break;

case 6:

$rotate = 90;

break;

}

?>

问题解决方案参考:https://www.e-learn.cn/content/wangluowenzhang/717898

参考文档:https://www.cnblogs.com/csonezp/p/5564809.html

php获取图片宽高相反,exif_read_data()解决上传图片旋转、图片反向问题,getimagesize获取图片高度宽度相反的问题...相关推荐

  1. 移动端图片自适应,img固定宽高,怎么解决不同尺寸图片显示会变形的问题

    方案1: 根据图片实际宽高和需要显示的容器宽高等比例拉伸或缩小1.父容器如div设置固定width和height,设置 overflow: hidden,设置相对定位;2. img设置绝对定位,设置最 ...

  2. 不固定图片宽高瀑布流_类百度图片的固定高度横向瀑布流js方法及纯css实现的方法记录...

    微信图片_20190117105118.png 纯css实现代码: Document div{ display: flex;/*显示模式设置为弹性盒子*/ flex-wrap: wrap;/*进行强制 ...

  3. JS快速获取图片宽高的方法

    JS快速获取图片宽高的方法 快速获取图片的宽高其实是为了预先做好排版样式布局做准备,通过快速获取图片宽高的方法比onload方法要节省很多时间,甚至一分钟以上都有可能,并且这种方法适用主流浏览器包括I ...

  4. vue-preview动态获取图片宽高并增加旋转功能

    vue-preview是一个常用的图片查看器,微博网页版就是用的这个插件: 我在项目中也用过这个插件,总体来说,还是比较满意.但是缺少一个图片旋转功能. 安装使用 第一步:安装 npm i vue-p ...

  5. android 通过图片url获取宽高_通过 URL 获取图片宽高优化

    一张小图.png 前言 客户端研发时,有时会有这样的需求,需要根据图片链接地址获取图片的宽高来进行界面排版. 一般比较正规的做法,是服务端在返回数据时将图片的信息属性一起带回来,这也符合轻客户端设计规 ...

  6. Flutter图片宽高获取

    本地图片宽高获取 网络图片宽高获取 原理 通过在其ImageProvider上调用resolve来读取ImageStream 1.本地图片宽高获取 以IM发送本地图片为例 sendImage: (St ...

  7. Glide获取网络图片宽高,并动态设置图片宽高

    ​ 因Android手机屏幕尺寸较多,当imageview宽设置match_parent,高固定时.会导致图片拉伸或裁剪.目前可通过获取图片宽高,动态设置imageview宽高比例,等比例缩放图片. ...

  8. 前端获取图片宽高的几种方法

    有时候动态加载图片,会因为图片宽高导致显示拉伸情况,如果能根据图片URL地址获取到图片的宽高,再进行渲染,就可以了,以下两种方案供参考: 方法一: // 图片地址 var imgUrl = " ...

  9. img图片太大设置图片宽高,图片显示变形解决办法

    当img图片太大时,设置图片宽高图片显示就会变形,object-fit属性就可以很好的解决这个问题: <div><img src="https://img0.baidu.c ...

最新文章

  1. Oracle和Mysql的 != 差异
  2. web主题公园版权信息破解:script.js加密文件
  3. 【转】BLE 学习记录
  4. mysql设置作业_MySQL-作业1
  5. 全面剖析 Knative Eventing 0.6 版本新特性
  6. python教程龟叔_Python新手入门
  7. Esxi自动化配置脚本
  8. andorid关于selector更换图片失效
  9. 太原理工大学荣获2020(第二届)集成电路EDA设计精英挑战赛一等奖
  10. Postgresql中存储过程(函数)调用存储过程(函数)时应用注意的问题
  11. Axure RP 8下载
  12. List转Map-JDK8实现
  13. 【后端】短信验证码4位或6位
  14. 4.深度强化学习------PPG(Phasic Policy Gradient)算法资料+原理整理
  15. Programmer Study Guide-游戏程序员指南
  16. check 和nocheck
  17. ping命令的常用参数
  18. 部署XPE镜像文件到虚拟机
  19. 基于LightGBM分类实现英雄联盟数据预测(二)
  20. mysql5.7性能提升一百倍调优

热门文章

  1. 一文读懂柔性电子传感器
  2. Linux FTP配置匿名用户访问
  3. 什么是上转型对象及其基本特征
  4. 服务器文件存档规范,国家标准电子文件归档与管理规范.doc
  5. 关于白盒测试中的环形复杂度和基本路径个数的关系
  6. NVLink A100GPU 安装 Fabric-manager,解决GPU无法正常使用问题
  7. pip freeze获得的requirements.txt 出现了@这样的
  8. 华为手机不亮屏也能显示时间日期?10秒就能设置,原来这么简单
  9. cmake gui安装教程_CMake教程 总
  10. 模板引擎Velocity和Freemarker的区别