この問題も私を狂わせていました。サーバーサイドでPHPを使用していたため、@ The Lazy Log(ruby)および@deweydb(python)ソリューションを使用できませんでした。しかし、それは私に正しい方向を示しました。ImagickのgetImageOrientation()を使用して裏付けで修正しました。
<?php
// Note: $image is an Imagick object, not a filename! See example use below.
function autoRotateImage($image) {
$orientation = $image->getImageOrientation();
switch($orientation) {
case imagick::ORIENTATION_BOTTOMRIGHT:
$image->rotateimage("#000", 180); // rotate 180 degrees
break;
case imagick::ORIENTATION_RIGHTTOP:
$image->rotateimage("#000", 90); // rotate 90 degrees CW
break;
case imagick::ORIENTATION_LEFTBOTTOM:
$image->rotateimage("#000", -90); // rotate 90 degrees CCW
break;
}
// Now that it's auto-rotated, make sure the EXIF data is correct in case the EXIF gets saved with the image!
$image->setImageOrientation(imagick::ORIENTATION_TOPLEFT);
}
?>
詳細はこちらのリンクからどうぞ。http://php.net/manual/en/imagick.getimageorientation.php