Changeset 6426 for extensions/pLoader/trunk/src/Uploader/Image.pm
- Timestamp:
- May 31, 2010, 9:35:46 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/pLoader/trunk/src/Uploader/Image.pm
r5472 r6426 21 21 use strict; 22 22 use base qw/Uploader::Object/; 23 use File::Spec; 24 use Image::ExifTool qw(:Public); 25 use Data::Dumper; 23 26 24 __PACKAGE__->mk_accessors( 25 qw/ 26 file 27 wx_thumb_file 28 site_high_file 29 site_name 30 site_resized_file 31 site_thumb_file 32 site_author 33 site_comment 34 site_original_filename 35 exif_metadata 36 add_rank 37 site_categories 38 site_tags 39 file_sum 40 width 41 height 42 privacy_level 43 caption 44 / 45 ); 27 # we need a ref to data preferences to use with threads 28 my @properties = qw/ 29 file 30 wx_thumb_file 31 site_high_file 32 site_name 33 site_resized_file 34 site_thumb_file 35 site_author 36 site_comment 37 site_original_filename 38 exif_metadata 39 add_rank 40 site_categories 41 site_tags 42 image_id 43 width 44 height 45 privacy_level 46 caption 47 global_rank 48 /; 49 50 my $init_caption_from_pattern_cbk; 51 52 __PACKAGE__->mk_accessors(@properties); 46 53 47 54 sub Init { 48 55 my ( $self ) = @_; 49 56 57 58 my $exif = $self->read_exif_metadata( 59 $self->file 60 ); 61 62 $self->exif_metadata( 63 $self->select_exif_data($exif) 64 ); 65 66 67 68 $self->site_original_filename( 69 $self->original_filename 70 ); 71 50 72 } 73 74 75 sub read_exif_metadata { 76 my ( $self, $file ) = @_; 77 78 # read exif metadata 79 my $info; 80 eval { 81 $info = ImageInfo( $file ); 82 }; 83 $info = {} if($@); 84 85 $info; 86 } 87 51 88 52 89 sub exif_tag { 53 90 my ( $self, $tag ) = @_; 54 91 55 92 my $exif = $self->exif_metadata ; 56 93 57 $exif->{$tag}; 94 $exif->{$tag}; 58 95 } 96 59 97 60 98 sub create_date { … … 64 102 65 103 $self->{-create_date} ||= $exif->{CreateDate}; 66 104 67 105 $self->{-create_date} = $date if defined $date; 68 106 69 107 $self->{-create_date}; 70 108 } 71 109 72 110 111 sub select_exif_data { 112 my ( $self, $exif ) = @_; 113 114 return { 115 map { 116 $_ => $exif->{$_}, 117 } 118 qw/ 119 CreateDate 120 ImageWidth 121 ImageHeight 122 Orientation 123 DateTimeOriginal 124 ISO 125 ExposureTime 126 ApertureValue 127 FocalLength 128 Lens 129 Exposure 130 Make 131 Model 132 / 133 }; 134 } 135 136 137 sub original_filename { 138 my ( $self ) = @_; 139 140 my ( $vol, $dir, $filename ) = File::Spec->splitpath( 141 $self->file 142 ); 143 144 $filename; 145 } 146 147 sub get_data { 148 my ( $self, $preferences, $destination_category, $add_rank ) = @_; 149 150 my $data = { 151 map { $_ => $self->$_ } @properties 152 }; 153 $data->{preferences} = $preferences; 154 $data->{categories} = $destination_category; 155 $data->{site_img_date_creation} = $self->create_date; 156 $data->{add_rank} = $add_rank; 157 158 return $data; 159 } 73 160 74 161 1;
Note: See TracChangeset
for help on using the changeset viewer.