php getimagesize() 宽高与实际相反

图片中Orientation 属性判断图片是否旋转

php函数 exif_read_data()  可以读取图片exif ,可以通过判断exif返回的 Orientation判断宽高是否对调( Orientation 有可能不存在,需要判断isset() ).

附注: exif_read_data()函数需要开启php扩展   :   php_exif,php_mbstring

$exif = exif_read_data($_FILES['image_upload']['tmp_name']);

if(!empty($exif['Orientation'])) {
switch($exif['Orientation']) {
case 8:
//旋转90,宽高翻转
$image = imagerotate($image,90,0);

break;

case 3:
//旋转180,宽高不变
$image = imagerotate($image,180,0);

break;

case 6:
//反旋转90,宽高翻转
$image = imagerotate($image,-90,0);

break;

}
}

一些调查,一般由相机等手持设备拍出来的相片的默认后缀是jpg,这类图片自身有一些属性如方向属性Orientation,在我们的应用程序里可以被获取(PNG这类图片是没有这类信息的),来供我们做一些处理。

orientation的几种类型:
Orientation = 1(不翻转)
Orientation = 2 (左右翻转)
Orientation = 3 (180度翻转
Orientation = 4 (上下翻转)
Orientation = 5 (顺时针翻转90度后,左右翻转)
Orientation = 6 (顺时针翻转90度)
Orientation = 7 (逆时针翻转90度后,左右翻转)
Orientation = 8 (逆时针翻转90度)

PS:一般常用的也就是1,3,6,8,另外几种,反正我是没有拍出这种orientation的图片,应该是那种有特效功能的相机拍出的吧。

由以上可知,如果orientation!=1时,需要对图片进行适当的旋转,这样才能得到拍摄时图片的样子。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值