作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我得到 exif 来读取上传图像的方向。
问题是在某些图像中我收到此错误:
warning exif_read_data(php3KLADx): File not supported in /home/i/public_html/orientation.php on line 5
<?php
function exif_orientation($file_tmp) {
$image = imagecreatefromstring(file_get_contents($file_tmp));
$exif = exif_read_data($file_tmp);
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;
}
imagejpeg($image, $file_tmp, 90);
}
}
?>
最佳答案
你应该这样做,如下所示:
if (!function_exists('imageOrientation'))
{
function imageOrientation(string $directory)
{
if(file_exists($directory))
{
$destination_extension = strtolower(pathinfo($directory, PATHINFO_EXTENSION));
if(in_array($destination_extension, ["jpg","jpeg"]) && exif_imagetype($directory) === IMAGETYPE_JPEG)
{
if(function_exists('exif_read_data'))
{
$exif = exif_read_data($directory);
if(!empty($exif) && isset($exif['Orientation']))
{
$orientation = $exif['Orientation'];
switch ($orientation)
{
case 2:
$flip = 1;
$deg = 0;
break;
case 3:
$flip = 0;
$deg = 180;
break;
case 4:
$flip = 2;
$deg = 0;
break;
case 5:
$flip = 2;
$deg = -90;
break;
case 6:
$flip = 0;
$deg = -90;
break;
case 7:
$flip = 1;
$deg = -90;
break;
case 8:
$flip = 0;
$deg = 90;
break;
default:
$flip = 0;
$deg = 0;
}
$img = imagecreatefromjpeg($directory);
if($deg !== 1 && $img !== null)
{
if($flip !== 0)
{
imageflip($img,$flip);
}
$img = imagerotate($img, $deg, 0);
imagejpeg($img, $directory);
}
}
}
}
}
}
}
关于php - 第 5 行警告 exif_read_data(php3KLADx) : File not supported in/home/i/public_html/orientation. php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52174789/
我是一名优秀的程序员,十分优秀!