Automatically rotate and mirror images based on EXIF orientation (only compatiable with "convert" option selected at the moment)
This commit is contained in:
parent
cd81ae8ea5
commit
a44e0571bc
75
post.php
75
post.php
@ -421,6 +421,81 @@ if (isset($_POST['delete'])) {
|
|||||||
error($config['error']['maxsize']);
|
error($config['error']['maxsize']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The following code corrects the image orientation based on EXIF.
|
||||||
|
// Currently only works with the 'convert' option selected but it could easily be expanded to work with the rest if you can be bothered.
|
||||||
|
if ($config['thumb_method'] == 'convert') {
|
||||||
|
if ($post['extension'] == 'jpg' || $post['extension'] == 'jpeg') {
|
||||||
|
$exif = exif_read_data($upload);
|
||||||
|
if (isset($exif['Orientation'])) {
|
||||||
|
switch($exif['Orientation']) {
|
||||||
|
case 1:
|
||||||
|
// Normal
|
||||||
|
$args = false;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
// 888888
|
||||||
|
// 88
|
||||||
|
// 8888
|
||||||
|
// 88
|
||||||
|
// 88
|
||||||
|
|
||||||
|
$args = '-flop';
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
|
||||||
|
// 88
|
||||||
|
// 88
|
||||||
|
// 8888
|
||||||
|
// 88
|
||||||
|
// 888888
|
||||||
|
|
||||||
|
$args = '-flip -flop';
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
// 88
|
||||||
|
// 88
|
||||||
|
// 8888
|
||||||
|
// 88
|
||||||
|
// 888888
|
||||||
|
|
||||||
|
$args = '-flip';
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
// 8888888888
|
||||||
|
// 88 88
|
||||||
|
// 88
|
||||||
|
|
||||||
|
$args = '-rotate 90 -flop';
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
// 88
|
||||||
|
// 88 88
|
||||||
|
// 8888888888
|
||||||
|
|
||||||
|
$args = '-rotate 90';
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
// 88
|
||||||
|
// 88 88
|
||||||
|
// 8888888888
|
||||||
|
|
||||||
|
$args = '-rotate "-90" -flop';
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
// 8888888888
|
||||||
|
// 88 88
|
||||||
|
// 88
|
||||||
|
|
||||||
|
$args = '-rotate "-90"';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($args)
|
||||||
|
shell_exec('convert ' . escapeshellarg($upload) . ' ' . $args . ' ' . escapeshellarg($upload));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// create image object
|
// create image object
|
||||||
$image = new Image($upload, $post['extension']);
|
$image = new Image($upload, $post['extension']);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user