Skip to content

Instantly share code, notes, and snippets.

@codee
Last active January 24, 2025 13:23

Revisions

  1. codee revised this gist Jan 29, 2013. 1 changed file with 37 additions and 37 deletions.
    74 changes: 37 additions & 37 deletions image_autorotate.php
    Original file line number Diff line number Diff line change
    @@ -22,43 +22,43 @@ function __construct($params = NULL) {

    $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;
    }
    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;
  2. codee revised this gist Jan 29, 2013. 1 changed file with 7 additions and 7 deletions.
    14 changes: 7 additions & 7 deletions image_autorotate.php
    Original file line number Diff line number Diff line change
    @@ -28,36 +28,36 @@ function __construct($params = NULL) {
    break;

    case 2: // horizontal flip
    $oris[] = 'hor';
    $oris[] = 'hor';
    break;

    case 3: // 180 rotate left
    $oris[] = '180';
    break;

    case 4: // vertical flip
    $oris[] = 'ver';
    $oris[] = 'ver';
    break;

    case 5: // vertical flip + 90 rotate right
    $oris[] = 'ver';
    $oris[] = '270';
    $oris[] = '270';
    break;

    case 6: // 90 rotate right
    $oris[] = '270';
    $oris[] = '270';
    break;

    case 7: // horizontal flip + 90 rotate right
    $oris[] = 'hor';
    $oris[] = '270';
    $oris[] = '270';
    break;

    case 8: // 90 rotate left
    $oris[] = '90';
    $oris[] = '90';
    break;

    default: break;
    default: break;
    }

    foreach ($oris as $ori) {
  3. codee created this gist Oct 21, 2012.
    74 changes: 74 additions & 0 deletions image_autorotate.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,74 @@
    <?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 */