最新ios开发者同事反馈,iPhone拍的图片(竖着拍)上传接口获取的宽高和实际的宽高正好相反。原本为2448×3264(通过mac 显示简介查看的尺寸)的图片,接口返回是 3264×2448。然后php本地测试getimagesize() 发现就是 3264×2448。 在chrome或火狐或者是safari 查看图片时看起来是竖图且标签显示为 2448×3264, 但是在ie 11 都显示的为横图,属性显示为3264×2448。 后来经过查询资料发现,图片的exif信息中有一项为orientation表示方向。ie不识别这个方向。可以理解为实际它应该是一个横图,只是方向旋转了90度。(因为肯定是想要视觉效果就是竖图)现在要想办法把它处理为一个 2448×3264 不带旋转的图片(效果和chrome等展示的一样),这样获取的宽高信息才算正确。(之前还尝试了 -strip把exif信息清理了,再用getimagesize获取还是3264×2448。)
今天开发APP端编辑器的时候,需要前端上传图片。但是发现个问题,IOS里拍的图片竟然是HEIC后缀的,我擦,真是第一次见。然后问题就出现了,拍的照片传到服务器上,后台PHP 用的Imagemagic 读到的 宽高和图片显示出来在浏览器中打开看到的宽高是相反的!然后我们这还要个加水印的操作,结果水印本来是加到右下角的,现在缺变到了左下角,看起来怪怪的。 然后百度了一下,发现正好有用户发了文章遇到了已有的问题。文章链接在最后
解决方案:
$srcResource = new Imagick(图片地址);
$srcResource->autoOrient();
直接用autoOrient()转一下就可以
我也是看了这篇文章才知道的: blog.pengduncun.com/?p=1125#com…