If I take a photo with a camera it stores the orientation/angle of the apparatus so when I view the image on the PC with a good app, it shows auto-rotated to 0.
But when I upload to a website it shows the original angle, so the image doesn't look good.
How can I detect this with PHP and rotate the image, and clear this angle flag from it's meta information.
1. With your image open in Photoshop, go to Image > Image Rotation. 2. Select from the image rotation options — 90 degrees clockwise, 90 degrees counterclockwise, or 180 degrees.
Right-click the image and select Details to reveal a screen with metadata, including EXIF data, that you can adjust if the image supports it. Force a preferred orientation. Rotate the image, then save it.
Short guide: Tap the Settings icon to open the Settings app. Scroll down and tap Accessibility. Scroll down to Interaction controls and tap Auto-rotate screen to turn it off.
In order to do that, you must read the EXIF information out of the JPEG file. You can either do that with exif
PHP extension or with PEL
.
Basically, you have to read the Orientation
flag in the file. Here is an example using the exif
PHP extension and WideImage
for image manipulation.
<?php $exif = exif_read_data($filename); $ort = $exif['Orientation']; $image = WideImage::load($filename); // GD doesn't support EXIF, so all information is removed. $image->exifOrient($ort)->saveToFile($filename); class WideImage_Operation_ExifOrient { /** * Rotates and mirrors and image properly based on current orientation value * * @param WideImage_Image $img * @param int $orientation * @return WideImage_Image */ function execute($img, $orientation) { switch ($orientation) { case 2: return $img->mirror(); break; case 3: return $img->rotate(180); break; case 4: return $img->rotate(180)->mirror(); break; case 5: return $img->rotate(90)->mirror(); break; case 6: return $img->rotate(90); break; case 7: return $img->rotate(-90)->mirror(); break; case 8: return $img->rotate(-90); break; default: return $img->copy(); } } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With