Bug #864 ยป 864.MWG.simple.diff
| src/convert.cpp (working copy) | ||
|---|---|---|
| 144 | 144 |
//! @name Conversion functions (manipulators) |
| 145 | 145 |
//@{
|
| 146 | 146 |
/*! |
| 147 |
@brief Do nothing conversion function. |
|
| 148 | ||
| 149 |
Use when, for example, a one-way conversion is needed. |
|
| 150 |
*/ |
|
| 151 |
void cnvNone(const char*, const char*); |
|
| 152 |
/*! |
|
| 147 | 153 |
@brief Simple Exif to XMP conversion function. |
| 148 | 154 | |
| 149 | 155 |
Sets the XMP property to an XmpText value containing the Exif value string. |
| ... | ... | |
| 322 | 328 |
{ mdExif, "Exif.Image.PrimaryChromaticities", "Xmp.tiff.PrimaryChromaticities", &Converter::cnvExifValue, &Converter::cnvXmpValue },
|
| 323 | 329 |
{ mdExif, "Exif.Image.YCbCrCoefficients", "Xmp.tiff.YCbCrCoefficients", &Converter::cnvExifValue, &Converter::cnvXmpValue },
|
| 324 | 330 |
{ mdExif, "Exif.Image.ReferenceBlackWhite", "Xmp.tiff.ReferenceBlackWhite", &Converter::cnvExifValue, &Converter::cnvXmpValue },
|
| 325 |
{ mdExif, "Exif.Image.DateTime", "Xmp.tiff.DateTime", &Converter::cnvExifDate , &Converter::cnvXmpDate },
|
|
| 331 |
{ mdExif, "Exif.Image.DateTime", "Xmp.xmp.ModifyDate", &Converter::cnvExifDate , &Converter::cnvXmpDate }, // MWG Guidelines
|
|
| 326 | 332 |
{ mdExif, "Exif.Image.ImageDescription", "Xmp.dc.description", &Converter::cnvExifValue, &Converter::cnvXmpValue },
|
| 327 | 333 |
{ mdExif, "Exif.Image.Make", "Xmp.tiff.Make", &Converter::cnvExifValue, &Converter::cnvXmpValue },
|
| 328 | 334 |
{ mdExif, "Exif.Image.Model", "Xmp.tiff.Model", &Converter::cnvExifValue, &Converter::cnvXmpValue },
|
| ... | ... | |
| 339 | 345 |
{ mdExif, "Exif.Photo.PixelYDimension", "Xmp.exif.PixelYDimension", &Converter::cnvExifValue, &Converter::cnvXmpValue },
|
| 340 | 346 |
{ mdExif, "Exif.Photo.UserComment", "Xmp.exif.UserComment", &Converter::cnvExifComment, &Converter::cnvXmpComment },
|
| 341 | 347 |
{ mdExif, "Exif.Photo.RelatedSoundFile", "Xmp.exif.RelatedSoundFile", &Converter::cnvExifValue, &Converter::cnvXmpValue },
|
| 342 |
{ mdExif, "Exif.Photo.DateTimeOriginal", "Xmp.exif.DateTimeOriginal", &Converter::cnvExifDate, &Converter::cnvXmpDate },
|
|
| 343 |
{ mdExif, "Exif.Photo.DateTimeDigitized", "Xmp.exif.DateTimeDigitized", &Converter::cnvExifDate, &Converter::cnvXmpDate },
|
|
| 348 |
{ mdExif, "Exif.Photo.DateTimeOriginal", "Xmp.photoshop.DateCreated", &Converter::cnvExifDate, &Converter::cnvXmpDate }, // MWG Guidelines
|
|
| 349 |
{ mdExif, "Exif.Photo.DateTimeDigitized", "Xmp.xmp.CreateDate", &Converter::cnvExifDate, &Converter::cnvXmpDate }, // MWG Guidelines
|
|
| 344 | 350 |
{ mdExif, "Exif.Photo.ExposureTime", "Xmp.exif.ExposureTime", &Converter::cnvExifValue, &Converter::cnvXmpValue },
|
| 345 | 351 |
{ mdExif, "Exif.Photo.FNumber", "Xmp.exif.FNumber", &Converter::cnvExifValue, &Converter::cnvXmpValue },
|
| 346 | 352 |
{ mdExif, "Exif.Photo.ExposureProgram", "Xmp.exif.ExposureProgram", &Converter::cnvExifValue, &Converter::cnvXmpValue },
|
| ... | ... | |
| 417 | 423 |
{ mdIptc, "Iptc.Application2.Keywords", "Xmp.dc.subject", &Converter::cnvIptcValue, &Converter::cnvXmpValueToIptc },
|
| 418 | 424 |
{ mdIptc, "Iptc.Application2.SubLocation", "Xmp.iptc.Location", &Converter::cnvIptcValue, &Converter::cnvXmpValueToIptc },
|
| 419 | 425 |
{ mdIptc, "Iptc.Application2.SpecialInstructions","Xmp.photoshop.Instructions", &Converter::cnvIptcValue, &Converter::cnvXmpValueToIptc },
|
| 420 |
{ mdIptc, "Iptc.Application2.DateCreated", "Xmp.photoshop.DateCreated", &Converter::cnvIptcValue, &Converter::cnvXmpValueToIptc },
|
|
| 426 |
{ mdIptc, "Iptc.Application2.DateCreated", "Xmp.photoshop.DateCreated", &Converter::cnvNone, &Converter::cnvXmpValueToIptc }, // FIXME to IPTC Date and IPTC Time
|
|
| 427 |
{ mdIptc, "Iptc.Application2.DigitizationDate", "Xmp.xmp.CreateDate", &Converter::cnvNone, &Converter::cnvXmpValueToIptc }, // FIXME to IPTC Date and IPTC Time
|
|
| 421 | 428 |
{ mdIptc, "Iptc.Application2.Byline", "Xmp.dc.creator", &Converter::cnvIptcValue, &Converter::cnvXmpValueToIptc },
|
| 422 | 429 |
{ mdIptc, "Iptc.Application2.BylineTitle", "Xmp.photoshop.AuthorsPosition", &Converter::cnvIptcValue, &Converter::cnvXmpValueToIptc },
|
| 423 | 430 |
{ mdIptc, "Iptc.Application2.City", "Xmp.photoshop.City", &Converter::cnvIptcValue, &Converter::cnvXmpValueToIptc },
|
| ... | ... | |
| 466 | 473 |
} |
| 467 | 474 |
} |
| 468 | 475 | |
| 476 |
void Converter::cnvNone(const char*, const char*) |
|
| 477 |
{
|
|
| 478 |
return; |
|
| 479 |
} |
|
| 480 | ||
| 469 | 481 |
bool Converter::prepareExifTarget(const char* to, bool force) |
| 470 | 482 |
{
|
| 471 | 483 |
Exiv2::ExifData::iterator pos = exifData_->findKey(ExifKey(to)); |
| test/conversions.sh (working copy) | ||
|---|---|---|
| 185 | 185 |
runTest exiv2 -M'set Exif.GPSInfo.GPSLatitudeRef N' u.jpg |
| 186 | 186 |
runTest exiv2 -M'set Exif.GPSInfo.GPSVersionID 2 2 0 1' u.jpg |
| 187 | 187 |
runTest exiv2 -M'set Exif.GPSInfo.GPSTimeStamp 1/1 2/1 999999999/1000000000' u.jpg |
| 188 |
runTest exiv2 -M'set Iptc.Application2.DateCreated 2007-05-09' u.jpg |
|
| 189 | 188 |
|
| 190 | 189 |
runTest exiv2 -PEkycv u.jpg |
| 191 | 190 |
runTest exiv2 -pi u.jpg |
| ... | ... | |
| 201 | 200 |
echo =========== |
| 202 | 201 |
copyTestFile $IMG v.jpg |
| 203 | 202 |
copy u.xmp v.xmp |
| 204 |
runTest exiv2 -M'set Xmp.tiff.DateTime 2003-12-14T12:01:44Z' v.xmp
|
|
| 203 |
runTest exiv2 -M'set Xmp.xmp.ModifyDate 2015-04-17T18:10:22Z' v.xmp
|
|
| 205 | 204 |
TZ=GMT-8 runTest exiv2 -iX v.jpg |
| 206 | 205 |
runTest exiv2 -px v.jpg |
| 207 | 206 |
runTest exiv2 -PEkycv v.jpg |
| ... | ... | |
| 215 | 214 |
reportTest $results-stripped $good |
| 216 | 215 | |
| 217 | 216 |
# That's all Folks! |
| 218 |
## |
|
| 217 |
## |
|
| test/data/conversions.out (working copy) | ||
|---|---|---|
| 124 | 124 |
Exif.GPSInfo.GPSLatitudeRef Ascii 2 N |
| 125 | 125 |
Exif.GPSInfo.GPSLatitude Rational 3 3/1 8/1 29734512/1000000 |
| 126 | 126 |
Exif.GPSInfo.GPSTimeStamp Rational 3 1/1 2/1 999999999/1000000000 |
| 127 |
Iptc.Application2.DateCreated Date 8 2007-05-09 |
|
| 127 |
u.jpg: (No IPTC data found in the file) |
|
| 128 | 128 |
Xmp.exif.ExifVersion XmpText 4 2.21 |
| 129 |
Xmp.exif.DateTimeOriginal XmpText 29 2003-12-14T12:01:44.999999999 |
|
| 130 | 129 |
Xmp.exif.GPSVersionID XmpText 7 2.2.0.1 |
| 131 | 130 |
Xmp.exif.GPSLatitude XmpText 12 3,8.4955752N |
| 132 | 131 |
Xmp.exif.GPSTimeStamp XmpText 29 2003-12-14T01:02:00.999999999 |
| ... | ... | |
| 137 | 136 |
Xmp.exif.Flash/exif:Mode XmpText 1 1 |
| 138 | 137 |
Xmp.exif.Flash/exif:Function XmpText 5 False |
| 139 | 138 |
Xmp.exif.Flash/exif:RedEyeMode XmpText 4 True |
| 140 |
Xmp.photoshop.DateCreated XmpText 10 2007-05-09
|
|
| 139 |
Xmp.photoshop.DateCreated XmpText 29 2003-12-14T12:01:44.999999999
|
|
| 141 | 140 |
Exif.Photo.ExifVersion Undefined 4 48 50 50 49 |
| 142 | 141 |
Exif.Photo.ComponentsConfiguration Undefined 4 1 2 3 0 |
| 143 | 142 |
Exif.Photo.DateTimeOriginal Ascii 20 2003:12:14 12:01:44 |
| ... | ... | |
| 148 | 147 |
Exif.GPSInfo.GPSLatitudeRef Ascii 2 N |
| 149 | 148 |
Exif.GPSInfo.GPSTimeStamp Rational 3 1/1 2/1 999999999/1000000000 |
| 150 | 149 |
Exif.GPSInfo.GPSDateStamp Ascii 11 2003:12:14 |
| 151 |
Iptc.Application2.DateCreated Date 8 2007-05-09
|
|
| 150 |
Iptc.Application2.DateCreated Date 8 2003-12-14
|
|
| 152 | 151 |
Iptc.Envelope.CharacterSet String 3 $%G |
| 153 | 152 | |
| 154 | 153 |
Testcase 15 |
| 155 | 154 |
=========== |
| 156 | 155 |
Xmp.exif.ExifVersion XmpText 4 2.21 |
| 157 |
Xmp.exif.DateTimeOriginal XmpText 29 2003-12-14T12:01:44.999999999 |
|
| 158 | 156 |
Xmp.exif.GPSVersionID XmpText 7 2.2.0.1 |
| 159 | 157 |
Xmp.exif.GPSLatitude XmpText 12 3,8.4955752N |
| 160 | 158 |
Xmp.exif.GPSTimeStamp XmpText 29 2003-12-14T01:02:00.999999999 |
| ... | ... | |
| 165 | 163 |
Xmp.exif.Flash/exif:Function XmpText 5 False |
| 166 | 164 |
Xmp.exif.Flash/exif:RedEyeMode XmpText 4 True |
| 167 | 165 |
Xmp.exif.ComponentsConfiguration XmpSeq 4 YCbCr |
| 168 |
Xmp.tiff.DateTime XmpText 20 2003-12-14T12:01:44Z
|
|
| 169 |
Xmp.photoshop.DateCreated XmpText 10 2007-05-09
|
|
| 170 |
Exif.Image.DateTime Ascii 20 2003:12:14 20:01:44
|
|
| 166 |
Xmp.xmp.ModifyDate XmpText 20 2015-04-17T18:10:22Z
|
|
| 167 |
Xmp.photoshop.DateCreated XmpText 29 2003-12-14T12:01:44.999999999
|
|
| 168 |
Exif.Image.DateTime Ascii 20 2015:04:18 02:10:22
|
|
| 171 | 169 |
Exif.Image.ExifTag Long 1 70 |
| 172 | 170 |
Exif.Photo.ExifVersion Undefined 4 48 50 50 49 |
| 173 | 171 |
Exif.Photo.DateTimeOriginal Ascii 20 2003:12:14 12:01:44 |
| ... | ... | |
| 181 | 179 |
Exif.GPSInfo.GPSTimeStamp Rational 3 1/1 2/1 999999999/1000000000 |
| 182 | 180 |
Exif.GPSInfo.GPSDateStamp Ascii 11 2003:12:14 |
| 183 | 181 |
Iptc.Envelope.CharacterSet String 3 $%G |
| 184 |
Iptc.Application2.DateCreated Date 8 2007-05-09 |
|
| 182 |
Iptc.Application2.DateCreated Date 8 2003-12-14 |
|