1 | #------------------------------------------------------------------------------
|
---|
2 | # File: Microsoft.pm
|
---|
3 | #
|
---|
4 | # Description: Definitions for custom Microsoft tags
|
---|
5 | #
|
---|
6 | # Revisions: 2010/10/01 - P. Harvey Created
|
---|
7 | #
|
---|
8 | # References: 1) http://research.microsoft.com/en-us/um/redmond/groups/ivm/hdview/hdmetadataspec.htm
|
---|
9 | #------------------------------------------------------------------------------
|
---|
10 |
|
---|
11 | package Image::ExifTool::Microsoft;
|
---|
12 |
|
---|
13 | use strict;
|
---|
14 | use vars qw($VERSION);
|
---|
15 | use Image::ExifTool::XMP;
|
---|
16 |
|
---|
17 | $VERSION = '1.03';
|
---|
18 |
|
---|
19 | # tags written by Microsoft HDView (ref 1)
|
---|
20 | %Image::ExifTool::Microsoft::Stitch = (
|
---|
21 | PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
|
---|
22 | WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
|
---|
23 | CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
---|
24 | WRITABLE => 1,
|
---|
25 | FORMAT => 'float',
|
---|
26 | FIRST_ENTRY => 0,
|
---|
27 | GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
---|
28 | NOTES => q{
|
---|
29 | Information found in the Microsoft custom EXIF tag 0x4748, as written by
|
---|
30 | Windows Live Photo Gallery.
|
---|
31 | },
|
---|
32 | 0 => {
|
---|
33 | Name => 'PanoramicStitchVersion',
|
---|
34 | Format => 'int32u',
|
---|
35 | },
|
---|
36 | 1 => {
|
---|
37 | Name => 'PanoramicStitchCameraMotion',
|
---|
38 | Format => 'int32u',
|
---|
39 | PrintConv => {
|
---|
40 | 2 => 'Rigid Scale',
|
---|
41 | 3 => 'Affine',
|
---|
42 | 4 => '3D Rotation',
|
---|
43 | 5 => 'Homography',
|
---|
44 | },
|
---|
45 | },
|
---|
46 | 2 => {
|
---|
47 | Name => 'PanoramicStitchMapType',
|
---|
48 | Format => 'int32u',
|
---|
49 | PrintConv => {
|
---|
50 | 0 => 'Perspective',
|
---|
51 | 1 => 'Horizontal Cylindrical',
|
---|
52 | 2 => 'Horizontal Spherical',
|
---|
53 | 257 => 'Vertical Cylindrical',
|
---|
54 | 258 => 'Vertical Spherical',
|
---|
55 | },
|
---|
56 | },
|
---|
57 | 3 => 'PanoramicStitchTheta0',
|
---|
58 | 4 => 'PanoramicStitchTheta1',
|
---|
59 | 5 => 'PanoramicStitchPhi0',
|
---|
60 | 6 => 'PanoramicStitchPhi1',
|
---|
61 | );
|
---|
62 |
|
---|
63 | # Microsoft Photo schema properties (MicrosoftPhoto) (ref PH)
|
---|
64 | %Image::ExifTool::Microsoft::XMP = (
|
---|
65 | %Image::ExifTool::XMP::xmpTableDefaults,
|
---|
66 | GROUPS => { 0 => 'XMP', 1 => 'XMP-microsoft', 2 => 'Image' },
|
---|
67 | NAMESPACE => 'MicrosoftPhoto',
|
---|
68 | TABLE_DESC => 'XMP Microsoft',
|
---|
69 | VARS => { NO_ID => 1 },
|
---|
70 | NOTES => q{
|
---|
71 | Microsoft Photo 1.0 schema XMP tags. This is likely not a complete list,
|
---|
72 | but represents tags which have been observed in sample images. The actual
|
---|
73 | namespace prefix is "MicrosoftPhoto", but ExifTool shortens this to
|
---|
74 | "XMP-microsoft" in the family 1 group name.
|
---|
75 | },
|
---|
76 | CameraSerialNumber => { },
|
---|
77 | DateAcquired => { Groups => { 2 => 'Time' }, %Image::ExifTool::XMP::dateTimeInfo },
|
---|
78 | FlashManufacturer => { },
|
---|
79 | FlashModel => { },
|
---|
80 | LastKeywordIPTC => { List => 'Bag' },
|
---|
81 | LastKeywordXMP => { List => 'Bag' },
|
---|
82 | LensManufacturer => { },
|
---|
83 | LensModel => { },
|
---|
84 | Rating => {
|
---|
85 | Name => 'RatingPercent',
|
---|
86 | Notes => q{
|
---|
87 | normal Rating values of 1,2,3,4 and 5 stars correspond to RatingPercent
|
---|
88 | values of 1,25,50,75 and 99 respectively
|
---|
89 | },
|
---|
90 | },
|
---|
91 | );
|
---|
92 |
|
---|
93 | # Microsoft Photo 1.1 schema properties (MP1 - written as 'prefix0' by MSPhoto) (ref PH)
|
---|
94 | %Image::ExifTool::Microsoft::MP1 = (
|
---|
95 | %Image::ExifTool::XMP::xmpTableDefaults,
|
---|
96 | GROUPS => { 0 => 'XMP', 1 => 'XMP-MP1', 2 => 'Image' },
|
---|
97 | NAMESPACE => 'MP1',
|
---|
98 | TABLE_DESC => 'XMP Microsoft Photo',
|
---|
99 | VARS => { NO_ID => 1 },
|
---|
100 | NOTES => q{
|
---|
101 | Microsoft Photo 1.1 schema XMP tags which have been observed.
|
---|
102 | },
|
---|
103 | PanoramicStitchCameraMotion => {
|
---|
104 | PrintConv => {
|
---|
105 | 'RigidScale' => 'Rigid Scale',
|
---|
106 | 'Affine' => 'Affine',
|
---|
107 | '3DRotation' => '3D Rotation',
|
---|
108 | 'Homography' => 'Homography',
|
---|
109 | },
|
---|
110 | },
|
---|
111 | PanoramicStitchMapType => {
|
---|
112 | PrintConv => {
|
---|
113 | 'Perspective' => 'Perspective',
|
---|
114 | 'Horizontal-Cylindrical' => 'Horizontal Cylindrical',
|
---|
115 | 'Horizontal-Spherical' => 'Horizontal Spherical',
|
---|
116 | 'Vertical-Cylindrical' => 'Vertical Cylindrical',
|
---|
117 | 'Vertical-Spherical' => 'Vertical Spherical',
|
---|
118 | },
|
---|
119 | },
|
---|
120 | PanoramicStitchPhi0 => { Writable => 'real' },
|
---|
121 | PanoramicStitchPhi1 => { Writable => 'real' },
|
---|
122 | PanoramicStitchTheta0 => { Writable => 'real' },
|
---|
123 | PanoramicStitchTheta1 => { Writable => 'real' },
|
---|
124 | );
|
---|
125 |
|
---|
126 | # Microsoft Photo 1.2 schema properties (MP) (ref PH)
|
---|
127 | my %sRegions = (
|
---|
128 | STRUCT_NAME => 'Regions',
|
---|
129 | NAMESPACE => 'MPReg',
|
---|
130 | Rectangle => { },
|
---|
131 | PersonDisplayName => { },
|
---|
132 | );
|
---|
133 | %Image::ExifTool::Microsoft::MP = (
|
---|
134 | %Image::ExifTool::XMP::xmpTableDefaults,
|
---|
135 | GROUPS => { 0 => 'XMP', 1 => 'XMP-MP', 2 => 'Image' },
|
---|
136 | NAMESPACE => 'MP',
|
---|
137 | TABLE_DESC => 'XMP Microsoft Photo',
|
---|
138 | VARS => { NO_ID => 1 },
|
---|
139 | NOTES => q{
|
---|
140 | Microsoft Photo 1.2 schema XMP tags which have been observed.
|
---|
141 | },
|
---|
142 | RegionInfo => {
|
---|
143 | Name => 'RegionInfoMP',
|
---|
144 | Struct => {
|
---|
145 | STRUCT_NAME => 'RegionInfoMP',
|
---|
146 | NAMESPACE => 'MPRI',
|
---|
147 | Regions => { Struct => \%sRegions, List => 'Bag' },
|
---|
148 | },
|
---|
149 | },
|
---|
150 | RegionInfoRegionsRectangle => {
|
---|
151 | Name => 'RegionRectangle',
|
---|
152 | Flat => 1,
|
---|
153 | },
|
---|
154 | RegionInfoRegionsPersonDisplayName => {
|
---|
155 | Name => 'RegionPersonDisplayName',
|
---|
156 | Flat => 1,
|
---|
157 | },
|
---|
158 | );
|
---|
159 |
|
---|
160 |
|
---|
161 | 1; # end
|
---|
162 |
|
---|
163 | __END__
|
---|
164 |
|
---|
165 | =head1 NAME
|
---|
166 |
|
---|
167 | Image::ExifTool::Microsoft - Definitions for custom Microsoft tags
|
---|
168 |
|
---|
169 | =head1 SYNOPSIS
|
---|
170 |
|
---|
171 | This module is used by Image::ExifTool
|
---|
172 |
|
---|
173 | =head1 DESCRIPTION
|
---|
174 |
|
---|
175 | This module contains definitions required by Image::ExifTool to interpret
|
---|
176 | Microsoft-specific EXIF and XMP tags.
|
---|
177 |
|
---|
178 | =head1 AUTHOR
|
---|
179 |
|
---|
180 | Copyright 2003-2011, Phil Harvey (phil at owl.phy.queensu.ca)
|
---|
181 |
|
---|
182 | This library is free software; you can redistribute it and/or modify it
|
---|
183 | under the same terms as Perl itself.
|
---|
184 |
|
---|
185 | =head1 REFERENCES
|
---|
186 |
|
---|
187 | =over 4
|
---|
188 |
|
---|
189 | =item L<http://research.microsoft.com/en-us/um/redmond/groups/ivm/hdview/hdmetadataspec.htm>
|
---|
190 |
|
---|
191 | =back
|
---|
192 |
|
---|
193 | =head1 SEE ALSO
|
---|
194 |
|
---|
195 | L<Image::ExifTool::TagNames/Microsoft Tags>,
|
---|
196 | L<Image::ExifTool(3pm)|Image::ExifTool>
|
---|
197 |
|
---|
198 | =cut
|
---|
199 |
|
---|