php中照片旋转 (orientation) 问题的正确处理(2)

if(!empty($exif['Orientation'])) { switch($exif['Orientation']) { case 8: $image = imagerotate($image,90,0); break; case 3: $image = imagerotate($image,180,0); break; case 6: $image = imagerotate($image,-90,0); break; } }

这一段就很容易看懂了,就是判断图片的旋转状态,对图片进行旋转处理imagerotate方法很好用,当然同类的还有好多函数,可以去了解下,如果你正在做图片处理,这些函数应该会有很大的帮助。

最后使用 imagejpeg 方法把处理过的图片写入到磁盘,然后返回一个包含远程地址的json到前端。

注意:我这里没有做异常捕获,正常情况下文件io操作都必须要做异常捕获,这里的代码只为了说明使用方法,所以省略了这一步。

总结

在这个小项目中,最为常见的问题就是在php函数的使用上,同一种效果可以使用多个函数进行处理,选择一个简洁高效的函数非常重要,在使用第三方扩展的时候务必确认扩展是否安装,扩展依赖的插件是否安装,是否已经开启,是否有其他额外的附加条件等。

前端方面需要知道所使用的js插件有那些附加功能,如果api文章不够清晰可以直接打开插件源码,通常情况下,一个出色的插件往往会在未压缩的代码里面写明所有接口的使用方法,以及注意事项,使用条件等。

此外,还需要对不常见的情况进行判定,当出现一些诡异bug的时候就应该考虑是否是因为当前所给的参数不符合规范,或者超出了规范允许的范围,上面说道的图片转base64格式的大小限制就是一个很难被发现的问题,博主在调试的时候对生成的数据进行观察才发现,当出现大图的时候就会转换失败。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/21d9878c6ed87461082b21a1943673ab.html