WordPress.org

Plugin Directory

Changeset 695131


Ignore:
Timestamp:
04/10/13 09:56:47 (13 months ago)
Author:
macbrink
Message:

Rotate and resize images based on exif information.

Location:
eazyest-gallery/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • eazyest-gallery/trunk/eazyest-gallery.php

    r695082 r695131  
    99 * Author: Brimosoft 
    1010 * Author URI: http://brimosoft.nl 
    11  * Version: 0.2.0-alpha-321 
     11 * Version: 0.2.0-alpha-322 
    1212 * Text Domain: eazyest-gallery 
    1313 * Domain Path: /languages/ 
    1414 * License: GNU General Public License, version 3 
    1515 * 
    16  * @version 0.2.0 (r321 
     16 * @version 0.2.0 (r322 
    1717 * @package Eazyest Gallery 
    1818 * @subpackage Main 
  • eazyest-gallery/trunk/includes/class-eazyest-folderbase.php

    r693554 r695131  
    99 * @copyright 2012-2013 Brimosoft 
    1010 * @since @since 0.1.0 (r2) 
    11  * @version 0.1.0 (r308) 
     11 * @version 0.2.0 (r322) 
    1212 * @access public 
    1313 */ 
     
    18521852    function sizes_metadata( $metadata, $attachment_id ) { 
    18531853        if ( ! $this->is_gallery_image( $attachment_id ) ) 
    1854             return $metadata;    
    1855          
    1856          
     1854            return $metadata; 
     1855                 
    18571856        $file = get_post_meta( $attachment_id, '_wp_attached_file', true ); 
    18581857        if ( false !== strpos( $file, eazyest_gallery()->root() ) ) 
     
    18621861            $metadata['file'] = $file; 
    18631862     
     1863    $orientation = 0; 
     1864        if ( function_exists( 'exif_read_data' ) ) { 
     1865            if ( ! isset( $metadata['eazyest_exif'] ) ) { 
     1866                if ( $exif = exif_read_data( eazyest_gallery()->root() . $file ) ) { 
     1867                    $orientation = isset ( $exif['Orientation'] ) ? $exif['Orientation'] : 0; 
     1868                    if ( $orientation && apply_filters( 'eazyest_gallery_rotate_original', true ) ) { 
     1869                        $image = wp_get_image_editor( eazyest_gallery()->root() . $file ); 
     1870                        $image->save( eazyest_gallery()->root() . $file );  
     1871                    } 
     1872                } 
     1873            } 
     1874        } 
     1875         
     1876        if ( in_array( $orientation, array( 6, 8) ) ) { 
     1877            $width = $metadata['width']; 
     1878            $metadata['width']  = $metadata['height']; 
     1879            $metadata['height'] = $width;  
     1880        } 
     1881     
    18641882    if ( isset( $metadata['sizes'] ) ) { 
    18651883        foreach( $metadata['sizes'] as $key => $size ) { 
    18661884            $metadata['sizes'][$key]['file'] = '_cache/' . basename( $metadata['sizes'][$key]['file'] ); 
     1885            if ( in_array( $orientation, array( 6, 8) ) ) { 
     1886                    $width = $metadata['sizes'][$key]['width']; 
     1887                    $metadata['sizes'][$key]['width']  = $metadata['sizes'][$key]['height']; 
     1888                    $metadata['sizes'][$key]['height'] = $width;  
     1889                } 
    18671890        } 
    18681891    } 
     1892    $metadata['eazyest_exif'] = 1; 
    18691893        return $metadata;            
    18701894    } 
  • eazyest-gallery/trunk/includes/class-eazyest-image-editor.php

    r689307 r695131  
    1414 *  
    1515 * @since 0.1.0 (r36) 
    16  * @version 0.1.0 (r277) 
     16 * @version 0.2.0 (r322) 
    1717 * @package Eazyest Gallery 
    1818 * @subpackage Image Editor 
     
    2020 */ 
    2121class Eazyest_Image_Editor extends _Eazyest_Image_Editor { 
     22     
     23         
     24    /** 
     25     * Eazyest_Image_Editor::load() 
     26     * Apply exif orientation after image loaded in memory. 
     27     *  
     28     * @since 0.2.0 (r322) 
     29     * @access public 
     30     * @return bool 
     31     */ 
     32    public function load() { 
     33        if ( $this->image ) 
     34         return true;    
     35        if( $load = parent::load() ) { 
     36            if ( ( false === strpos( $this->file, eazyest_gallery()->address() ) ) && ( false === strpos( $this->file, eazyest_gallery()->root() ) ) ) 
     37                return true; 
     38            $this->exif_orientation(); 
     39            return true;      
     40        } 
     41        return $load; 
     42    } 
    2243 
    2344    /** 
     
    4869             
    4970        return trailingslashit( $dest_path ) . $name;    
     71    } 
     72     
     73    /** 
     74     * Eazyest_Image_Editor::exif_orientation() 
     75     * Re-orient resized images based on exif orientation in source file. 
     76     *  
     77     * @since 0.2.0 (r322) 
     78     * @access protected 
     79     * @return void 
     80     */ 
     81    protected function exif_orientation() { 
     82        if ( apply_filters( 'eazyest_gallery_skip_exif_orientation', false ) ) 
     83            return; 
     84         
     85        if ( ! function_exists( 'exif_read_data' ) ) 
     86            return; 
     87             
     88        if ( $exif = exif_read_data( $this->file ) ) { 
     89            $orientation = isset ( $exif['Orientation'] ) ? $exif['Orientation'] : false; 
     90            if ( $orientation ) { 
     91                switch( $orientation ) { 
     92                    case 3: // 180 rotate left               
     93                        $this->rotate( 180 );                
     94                        break;               
     95                    case 6: // 90 rotate right               
     96                        $this->rotate( -90 );                
     97                        break;               
     98                    case 8: // 90 rotate left                
     99                        $this->rotate( 90 );                 
     100                        break;               
     101                }    
     102            } 
     103        }    
    50104    } 
    51105     
     
    83137                                 
    84138            $filename = $dirname . '/' . basename( $filename ); 
    85         }                
     139        }            
    86140        return parent::save( $filename, $mime_type );        
    87141    } 
Note: See TracChangeset for help on using the changeset viewer.