脚本宝典收集整理的这篇文章主要介绍了PHP getimagesize()混合了宽度和高度,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
然而(PHP版本5.4.12)在某些.jpg文件上它获得了高度和宽度,并且在某些(用iPhone拍摄)它交换它们,认为肖像图片实际上是风景.
它不仅发生在我的本地Wampserver上,也发生在远程服务器上(具有不同的PHP版本).
有谁知道如何
看起来Windows不支持读取此方向标记,而只是读取像素数据并按原样显示它.
一种解决方案是在每个图像的基础上改变受影响图片元数据中的方向标签,或者
使用PHP的exif_read_data()函数来读取方向并相应地定位图像,如下所示:
<?PHP $image = imagecreatefromstring(file_get_contents($_FILES['image_upload']['tmp_name'])); $exif = exif_read_data($_FILES['image_upload']['tmp_name']); 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; } } // $image Now contains a resource with the image oriented correctly ?>
参考文献:
> https://stackoverflow.com/a/10601175/1124793(研究为何发生这种情况)
> http://php.net/manual/en/function.exif-read-data.php#110894(PHP代码)
以上是脚本宝典为你收集整理的PHP getimagesize()混合了宽度和高度全部内容,希望文章能够帮你解决PHP getimagesize()混合了宽度和高度所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。