php - php getimagesize 混合了 IOS GIF(实时照片)的宽度和高度
问题描述
我正在使用 phpgetimagesize
在数据库中设置宽度和高度列。除了一些由 Iphone 相机(实时照片)拍摄的 GIF 之外,所有图像都可以正常工作。在这种情况下,宽度和高度会被切换。我的第一个想法是用来exif_read_data
检查方向和旋转。但我不相信它支持 GIF。识别迷失方向图像的最佳方法是什么?如果这确实是问题?
$img = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $media));
if (!$img) {
echo "!img media: $media";
return false;
}
$tfn = $user_id.''.time().'tmp';
file_put_contents($tfn, $img);
$info = getimagesize($tfn);
unlink($tfn);
if (($info[0] > 0 && $info[1] > 0 && $info['mime'])) {
$mfa = explode('/', $info['mime']);
if($mfa[0] != 'image'){
echo "not an image";
return 0;
}
$media_format = $mfa[1];
if($media_type = "gif") {$media_format = "gif";$media_type = "image";}
$media_name = md5("kaa".$page_id."".time()."".$user_id).".".$media_format;
$file = rand(0,1000000);
$path = "/var/www/html/api/media/posts/".$file;
$data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $media));
if(!file_exists($path))
mkdir($path, 0777, true);
if(!file_put_contents($path.'/'.$media_name, $data)){
return 0;
}
$media_p = $file.'/'.$media_name;
$dimens = $info[0].'x'.$info[1];
//echo "info[3] = ";echo $info[3];
}
`
解决方案
推荐阅读
- reactjs - 从外部的函数我将如何访问渲染函数内部的变量
- linux - 用于移动文件的 Bash 文件
- extjs - ExtJS - 将创建的面板带到视口的前面
- java - 做了一个简单的计算器,需要添加文字,这样当你输入一个非数字时,它会告诉你它不是一个数字
- json - 抓取 json 源代码(没有可用的 API)
- c - 构建字符串的链接列表
- google-app-engine - 使用 Nginx 托管 Docusaurus v2
- jenkins - 在詹金斯管道(groovy)中将变量插入变量
- javascript - 如何合并 onclick 事件并滚动到顶部
- javascript - 向 Azure VM 发送 HTTP 请求