Skip to content

Instantly share code, notes, and snippets.

@codee
Last active April 29, 2023 16:13
Show Gist options
  • Save codee/3927343 to your computer and use it in GitHub Desktop.
Save codee/3927343 to your computer and use it in GitHub Desktop.
CodeIgniter: Automatic image rotation library
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* @file application/libraries/Image_autorotate.php
*/
class Image_autorotate
{
function __construct($params = NULL) {
if (!is_array($params) || empty($params)) return FALSE;
$filepath = $params['filepath'];
$exif = @exif_read_data($filepath);
if (empty($exif['Orientation'])) return FALSE;
$CI =& get_instance();
$CI->load->library('image_lib');
$config['image_library'] = 'gd2';
$config['source_image'] = $filepath;
$oris = array();
switch($exif['Orientation'])
{
case 1: // no need to perform any changes
break;
case 2: // horizontal flip
$oris[] = 'hor';
break;
case 3: // 180 rotate left
$oris[] = '180';
break;
case 4: // vertical flip
$oris[] = 'ver';
break;
case 5: // vertical flip + 90 rotate right
$oris[] = 'ver';
$oris[] = '270';
break;
case 6: // 90 rotate right
$oris[] = '270';
break;
case 7: // horizontal flip + 90 rotate right
$oris[] = 'hor';
$oris[] = '270';
break;
case 8: // 90 rotate left
$oris[] = '90';
break;
default: break;
}
foreach ($oris as $ori) {
$config['rotation_angle'] = $ori;
$CI->image_lib->initialize($config);
$CI->image_lib->rotate();
}
}
}
// END class Image_autorotate
/* End of file Image_autorotate.php */
/* Location: ./application/libraries/Image_autorotate.php */
@Andrewsuares
Copy link

Hello, does this save the changes to the original image?

@mustafakucuk
Copy link

It's worked.

@bolivarbutzke
Copy link

Solução para o problema CodeIgniter image rotate! Thanks!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment