苹果手机上传图片之后竖图倾斜

想要判断图片是否已经正确显示,需要通过exif_read_data 获得图片信息

得到的返回信息为

(此操作需要打开exif扩展)

$exif = exif_read_data( realpath(__ROOT__).$url);//获得已上传图片的基本信息

 

array (size=12)

  'FileName' => string '575d04884b174.jpg' (length=17)

  'FileDateTime' => int 1465713800

  'FileSize' => int 3372313

  'FileType' => int 2

  'MimeType' => string 'image/jpeg' (length=10)

  'SectionsFound' => string 'ANY_TAG, IFD0, EXIF' (length=19)

  'COMPUTED' => 

    array (size=5)

      'html' => string 'width="4032" height="3024"' (length=26)

      'Height' => int 3024

      'Width' => int 4032

      'IsColor' => int 1

      'ByteOrderMotorola' => int 1

  'Orientation' => int 6

  'Exif_IFD_Pointer' => int 38

  'ColorSpace' => int 1

  'ExifImageWidth' => int 4032

  'ExifImageLength' => int 3024

 

 

'FileName' 图片名称

'FileDateTime' 图片创建时间

'FileSize' 图片大小

'FileType' 文件类型

'MimeType' 图片格式

'SectionsFound'

 

'Orientation' 倾斜情况,

1.正常

8:竖直

6:倾斜180

3:倒立竖直

 

if(!empty($exif['Orientation'])) //判断已上传图片是否存在显示状态与拍摄状态不一致
{
    $source = imagecreatefromjpeg( realpath(__ROOT__).$url);//获得图片
    switch($exif['Orientation']){//判断摄像状态与显示状态倾斜情况
        case 8:$source = imagerotate($source,90,0);break;
        case 3:$source = imagerotate($source,180,0);break;
        case 6:$source = imagerotate($source,-90,0);break;
    }
    $url="/Upload/".$info["myfile"]["savepath"].time().rand(1,10).rand(1,10)."_other.".$info["myfile"]["ext"];
    imagejpeg($source,realpath(__ROOT__).$url);//重新保存旋转过得文件
}

 

Imagecreatefromjpeg获得图片

Imagerotate()根据当前状态更改图片方向

Imagejpeg()重新保存图片


个人网站制作中,敬请期待http://linchuanxiao.cn

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值