Я работаю над простым скриптом загрузки php. работает нормально. но почему-то при сжатии изображений они вращаются. иногда они полностью поворачиваются на 180 градусов, иногда на 90 градусов. Почему он это делает и как мне это остановить? вот мой код:
$name = ''; $type = ''; $size = ''; $error = '';
function compress_image($source_url, $destination_url, $quality) {
$info = getimagesize($source_url);
if ($info['mime'] == 'image/jpeg')
$image = imagecreatefromjpeg($source_url);
elseif ($info['mime'] == 'image/gif')
$image = imagecreatefromgif ($source_url);
elseif ($info['mime'] == 'image/png')
$image = imagecreatefrompng($source_url);
imagejpeg($image, $destination_url, $quality);
//echo "result ".$destination_url;
//correctImageOrientation($destination_url);
return $destination_url;
}
$url = 'test/compressed.jpg';
compress_image($_FILES["file"]["tmp_name"], $url, 30);
@RoAchterberg есть ли способ просто удалить EXIF?
пожалуйста, смотрите этот ответ.
Я действительно начинаю блуждать, действительно ли это EXIF. Я следил за этим уроком, он все еще вращался. попробую вашу ссылку и посмотрим, есть ли разница: obrienmedia.co.uk/blog/…
Я настоятельно рекомендую для начала сравнить значение ориентации EXIF в исходном файле с выходным файлом. Если что-то изменилось, вы можете попробовать еще раз с исходным файлом с ориентацией по умолчанию и посмотреть, сохраняется ли проблема. Может быть, тогда попробуйте скармливать ему JPEG, который вы сохранили из Photoshop со стандартными настройками?
Я видел, как некоторые неожиданные ориентации всплывали с изображениями JPEG, снятыми некоторыми мобильными телефонами. Если
imagejpeg
сбрасывает исходную ориентацию EXIF, это может привести к неожиданному повороту изображения. Я предлагаю вам проверить ориентацию EXIF до и после запуска файла изображения через ваш код и посмотреть, есть ли какие-либо изменения.