Commit Graph

161 Commits

Author SHA1 Message Date
Andreas Huggel
687f9d9432 Added test for the type of the entries to decide if non-intrusive writing is possible. Fixes bug #452. 2006-12-29 02:32:03 +00:00
Andreas Huggel
0723a62899 Removed trailing whitespace 2006-12-15 05:07:05 +00:00
Andreas Huggel
f381cb6966 Do not write TIFF header to JPEG images if the Exif data is empty. Fixes bug #498. 2006-11-25 15:38:38 +00:00
Andreas Huggel
592ca5c711 Improved loading of JPEG data in case of problems. Existing Exif data is not modified until the new IFD0 is read successfully. Improved ExifData::clear() 2006-11-25 10:47:52 +00:00
Andreas Huggel
9daaaa3f6d Fixed compiler warnings 2006-06-21 09:16:36 +00:00
Andreas Huggel
73c6be0749 Stripped trailing whitespace 2006-06-01 15:09:39 +00:00
Andreas Huggel
521cf5eb01 Added support for Minolta CameraSettings, part 2 2006-05-09 19:42:23 +00:00
Andreas Huggel
5b57a1749b TIFF parser checkpoint (experimental): Improved CR2 support (changes in the TIFF structure table), added support for Jpeg thumbnails, enhanced TiffDirectory so that the next pointer is optional. 2006-04-23 08:05:55 +00:00
Andreas Huggel
1311ff7b10 Fixed buffer overflow in ExifData::load() when called with an empty buffer; marked the function as deprecated, as it will eventually disappear. 2006-04-10 12:23:49 +00:00
Andreas Huggel
ab10daa6d9 Removed trailing whitespace 2006-03-29 10:43:54 +00:00
Andreas Huggel
a1a5ff02b8 Fixed invalid type id for user comment tag, bug #451 2006-02-03 04:41:44 +00:00
Andreas Huggel
99b4e71459 Updated copyright and fsf address 2006-01-17 14:53:57 +00:00
Andreas Huggel
f4adc6528b Changed Exif parser to skip broken Ifds if possible. Fixes bug #443. 2005-11-12 17:10:47 +00:00
Andreas Huggel
8c623635e9 Changed hasMakerNote to return an IfdId instead of bool 2005-10-09 05:00:43 +00:00
Andreas Huggel
260b9af10b Removed hasMakerNote() from ExifData and made it a free function. Added setting to generate an XML tagfile to Doxyfile. 2005-10-08 16:30:21 +00:00
Andreas Huggel
06e5c0719e Removed trailing whitespace from source files 2005-10-08 11:25:44 +00:00
Andreas Huggel
489fff191d Canon CRW read support, first try. Introduces a new approach to parsing metadata. Cluttered by some related additions to the Canon makernote note and a bit of cleanup. 2005-09-11 08:41:54 +00:00
Andreas Huggel
47aad1f393 Added experimental bool ExifData::hasMakerNote() method 2005-07-31 09:35:15 +00:00
Andreas Huggel
5823ceaff3 Changed Ifd::read() to allow it to access the complete Exif data buffer. Corresponding changes done to makernotes. Fixes bug #424. 2005-07-31 08:50:09 +00:00
Andreas Huggel
1a2183c2ea This should fix 'unused parameter' warnings reported on Mac OS 10.4.1 Tiger / gcc4. To be confirmed. 2005-07-24 04:09:51 +00:00
Andreas Huggel
043a4a348b Added #ifndef SUPPRESS_WARNINGS blocks around all output from the library: compile with -DSUPPRESS_WARNINGS for a quiet library 2005-07-09 10:38:09 +00:00
Andreas Huggel
7d3f50c244 Minor changes (moved inline functions which throw to *.cpp files) 2005-07-08 15:50:52 +00:00
Andreas Huggel
a70511cc4a Changed MakerNoteFactory according to ImageFactory. Removes the need to link applications with mn.o. Fixes bug #427 2005-05-28 05:48:43 +00:00
Andreas Huggel
55aebc0686 Overhauled exception handling. The new class Error has a list of error messages, which is selected based on the error code provided in the constructor.
Image::read/writeMetadata and ImageFactory::open now throw Error in case of failure. Applications therefore now need an exception handler for the error handling of such function calls. This should result in shorter and simpler application code.
2005-04-17 11:51:32 +00:00
Andreas Huggel
90a707fa2e Fixed bugs found on MinGW and with MSVC. iotest still misteriously fails. 2005-04-10 09:00:47 +00:00
Andreas Huggel
6a675f3d82 Added support for Canon Camera settings 1/2 and Custom Functions tags 2005-04-10 04:06:05 +00:00
Andreas Huggel
1f82dffcfa Added type information to Exif tag tables. Updated comment example, documentation and tests. Implements feature #425 2005-03-26 17:25:52 +00:00
Andreas Huggel
adb618fcf9 More clean-up, updated component dependency graph 2005-03-19 14:56:47 +00:00
Andreas Huggel
2347ae9e0a Cleaned up exif.hpp dependencies 2005-03-19 10:59:49 +00:00
Andreas Huggel
59e1a6f29f Added an EXV_ prefix to precompiler defines (still not to all yet - I don't like the idea of "exv_size_t" or "exv_const" - but hopefully to those more likely to create conflicts). Fixes bug #420 2005-03-19 06:50:19 +00:00
Andreas Huggel
54a42fc1f7 Generalized and cleaned-up makernote handling 2005-03-13 12:52:56 +00:00
Andreas Huggel
8521dead83 Added 2005 to Copyright lines 2005-03-12 16:43:06 +00:00
Andreas Huggel
2a0149184a Fixes and cosmetic changes; all tests now pass again, finally! 2005-03-12 10:54:52 +00:00
Andreas Huggel
8221293072 Completed ExifData assignment operator and copy constructor, added related code and tests. Fixes bug #417 2005-02-21 15:57:10 +00:00
brad
0cab366ec2 Merges all changes from the insideout branch back into trunk. This includes the IO abstraction code, split-up of image.cpp, and inside-out design change (#402, #403, and #404). 2005-01-16 09:22:28 +00:00
Andreas Huggel
5ea6544c6d Fixed bug #407 (that was easier than I first thought) 2005-01-13 15:55:05 +00:00
Andreas Huggel
72f9786ad3 Added very basic assignment op and copy constructor to ExifData - untested 2004-12-22 10:34:32 +00:00
Andreas Huggel
c8d9fe0b35 Changed operator hack to be more consistent, added op=(const Value&) 2004-12-10 18:04:07 +00:00
Andreas Huggel
4b86ee4583 Fixed ExifData::eraseThumbnail(). Bug #401 2004-12-05 04:13:00 +00:00
Andreas Huggel
57a5b8c422 Undid changes from rev 421 (doesn't compile with g++), moved definitions of Exifdatum::op= to exif.cpp 2004-12-03 16:00:55 +00:00
Andreas Huggel
bd5b6d2ccc Added ExifData setJpegThumbnail and op[] and Exifdatum op=. With the operator stuff you can now do things like: exifData["Exif.Thumbnail.Compression"] = uint16_t(6); 2004-11-29 15:00:55 +00:00
Andreas Huggel
c4eca96836 Revamped Thumbnail classes to use the new data area feature. Implements feature #398. 2004-11-24 12:32:21 +00:00
Andreas Huggel
974d5e4637 Added data area concept to Value, ValueType, Entry, Ifd. Implements feature #395 2004-11-14 16:33:04 +00:00
brad
77d3d5621a added subversion style keywords 2004-11-09 19:10:37 +00:00
Andreas Huggel
44d0deac92 Converted Value hierarchy to use std::auto_ptr where appropriate 2004-10-16 06:43:40 +00:00
Andreas Huggel
e20bffaec7 Converted Key hierarchy to use std::auto_ptr where appropriate 2004-10-16 04:43:21 +00:00
Andreas Huggel
8551c935f8 Changed MakerNote class hierarchy to use std::auto_ptr where appropriate 2004-10-14 16:42:57 +00:00
Andreas Huggel
f40fba88bf Added Image::AutoPtr and related updates
Changed some local buffers to DataBuf
2004-10-12 16:23:08 +00:00
Andreas Huggel
79721d04e0 Move ExifKey to component tags, moved IptcKey to component datasets 2004-09-29 13:48:55 +00:00
Andreas Huggel
25404d55e5 Minor changes 2004-09-21 15:57:55 +00:00
Andreas Huggel
9b6e62c552 Added support to build a MakerNote from scratch 2004-09-19 09:22:20 +00:00
Andreas Huggel
1efd83bf04 Minor cleanup 2004-09-18 16:28:15 +00:00
Andreas Huggel
e88a307858 Improved and cleaned-up ExifKey implementation 2004-09-18 15:58:03 +00:00
Andreas Huggel
a25763d070 Replaced custom integer types with C99 types 2004-09-15 13:14:52 +00:00
Andreas Huggel
54e126d3e4 Appended one more Id to an Ifd id to work around a g++-3.4 2004-09-05 05:48:01 +00:00
Andreas Huggel
5e050bce0a Appended 'Id' to Ifd ids to work around a g++-3.4 problem 2004-09-04 09:28:36 +00:00
Andreas Huggel
6b0489a02f More patches for masked Exiv2::ifd0 and Exiv2::exifIfd (Joseph Heled) 2004-09-04 08:56:54 +00:00
Andreas Huggel
0147a77c7b Added Key, ExifKey and IptcKey class hierarchy
Changed Exif keys to 'Exif.ifdItem.tagName'
2004-09-04 08:42:56 +00:00
Andreas Huggel
cb164f712f Added check if file exists before calls to ImageFactory::open 2004-08-21 15:39:43 +00:00
Andreas Huggel
166e6f7928 Added full IPTC read and write support (Brad, bs_3.patch) 2004-08-12 03:57:27 +00:00
Andreas Huggel
93d8dd7e1f Fix for masked Exiv2::ifd1 (Joseph Heled) 2004-07-28 15:55:07 +00:00
Andreas Huggel
735bb60985 Removed obsolete includes 2004-07-26 14:41:45 +00:00
Andreas Huggel
9d72b7d1ec Revamped image and introduced byte* interface (Brad, bs_1.patch with minor modifications by ahu) 2004-07-26 08:11:38 +00:00
Andreas Huggel
d3ee3bdc9a Really fixed ExifData::copyFromMetadata to automatically add missing offset tags 2004-06-27 04:54:49 +00:00
Andreas Huggel
3156f53a25 Delete Exif section from the file when writing an empty ExifData 2004-06-20 06:29:14 +00:00
Andreas Huggel
8f445fa016 * Fixed MSVC errors and warnings (Steve, sking_5.patch)
* Fixed ExifData::copyFromMetadata to automatically add missing offset tags
* Fixed an embarassing bug in ExifData::updateEntries, which caused write
  after erasing metadata to write back the original metadata.
2004-06-19 11:31:34 +00:00
Andreas Huggel
b921d51d1b Attempt for a fix for copyFromMetadata. Not complete. 2004-06-10 16:18:18 +00:00
Andreas Huggel
f98f131244 Added the makernote buffer to the arguments passed to the create function. This allows the makernote create function to determine the exact makernote needed based on its
content. The new concept is used to automatically determine which of the three Nikon makernotes to create.
2004-05-26 01:59:07 +00:00
Andreas Huggel
fdfb5fee63 Added warning when makernote cannot be read 2004-05-25 05:55:58 +00:00
Andreas Huggel
59edeff2d8 Added len argument and boundary checks to various read functions and slightly improved error handling 2004-05-13 16:12:12 +00:00
Andreas Huggel
cbb1c15810 Changed namespace name Exif to Exiv2 2004-05-08 09:25:17 +00:00
Andreas Huggel
0b24a0ad29 makernote:
Added MakerNote::offset()
Fixed IfdMakerNote::copy() for IfdMakerNote with a prefix
Various doc fixes

ifd:
Fixed Ifd::erase(pos) to return an iterator
Added Ifd::dataOffset()
Various doc fixes

exif:
Added Thumbnail::offset()
Fixed ExifData::eraseThumbnail()
Fixed ExifData::erase(pos) to return an iterator
2004-05-07 05:09:57 +00:00
Andreas Huggel
99a87043a4 Workaround for MinGW bug: use remove() before rename() 2004-04-23 13:55:42 +00:00
Andreas Huggel
20bcdef949 Use DataBuf for temporary data buffers 2004-04-03 03:47:41 +00:00
Andreas Huggel
57cdf19286 Added support to read from / write to *.exv files, made return values of writeThumbnail consistent with those of other write functions 2004-04-02 09:59:16 +00:00
Andreas Huggel
2db819ccb6 Implemented erase Exif data 2004-04-01 08:34:50 +00:00
Andreas Huggel
f520a571a6 Avoid opening the image twice on read and write 2004-03-31 12:03:02 +00:00
Andreas Huggel
7d7322dff7 Implemented ImageFactory::create() and its use in ExifData 2004-03-31 02:53:21 +00:00
Andreas Huggel
3681403ac4 Naming convention: Renamed data members xyz_ that are pointers to pXyz_ 2004-03-23 02:55:12 +00:00
Andreas Huggel
a0a42b148e Added Thumbnail class hierarchy and support to erase thumbnails 2004-03-22 08:51:07 +00:00
Andreas Huggel
532b0c33a7 Added Thumbnail::dataSize 2004-03-20 10:41:20 +00:00
Andreas Huggel
bac67ee39f Use assert macro where appropriate 2004-03-20 05:35:10 +00:00
Andreas Huggel
8a776d2f44 Supported MakerNote byte order and invalidTypeId 2004-03-18 16:04:53 +00:00
Andreas Huggel
6c389a708b Fixed TIFF thumbnail bug in Thumbnail::updateTiffImage 2004-03-09 05:43:08 +00:00
Andreas Huggel
eb9541f172 Makernote write support, part 3 (differentiate memory management modes, do not sort makernote) 2004-03-09 04:29:45 +00:00
Andreas Huggel
cdae02333f Makernote write support, part 2 2004-03-08 16:37:25 +00:00
Andreas Huggel
7174da0192 Auto-registration of MakerNote subclasses in the factory, combined mnfactory and makernote into one component again 2004-03-08 02:20:03 +00:00
Andreas Huggel
6cafaf11e3 Split makernote component in makernote, mnfactory and canonmn 2004-03-07 11:02:58 +00:00
Andreas Huggel
1daee4d7ae Changes for makernote write support, documentation updates 2004-03-07 08:47:20 +00:00
Andreas Huggel
03f2f15d98 Bugfixes (creation of Metadatum with 2 shorts instead of 1, duplicate StripOffset tags in thumbnail IFD) and change of makeKey() signature 2004-03-06 06:35:25 +00:00
Andreas Huggel
fdd338981a MakerNote related changes and Entry clean-up 2004-02-21 12:02:24 +00:00
Andreas Huggel
6749046e40 Divided exif.[ch]pp into components 2004-02-11 06:39:36 +00:00
Andreas Huggel
8f4668a6e9 Added printing of the interpreted metadatum value 2004-02-10 09:25:09 +00:00
Andreas Huggel
9cf3e66801 Fixed blunders related to non-intrusive writing: Ambiguous Ifd constructor, incomplete implementation of updateIfds 2004-02-10 02:39:34 +00:00
Andreas Huggel
f3a3e32ac2 Implemented "non-intrusive write support", part 2 and JPEG file write support 2004-02-06 12:13:32 +00:00
Andreas Huggel
214a00b842 Added thumbnail type none, added ifd and TIFF header to thumbnail 2004-02-05 03:45:20 +00:00
Andreas Huggel
cd45eb0e5c Bugfixes: use the correct version of delete 2004-02-05 01:24:27 +00:00
Andreas Huggel
39172050a8 Implemented ExifData::copy() and related Thumbnail stuff 2004-02-03 12:24:35 +00:00
Andreas Huggel
a4a95c0aec Added RCS id to each *.cpp file 2004-02-02 02:44:26 +00:00
Andreas Huggel
ff2fdd3b9f Implemented IFD logic to support "non-intrusive write operations", part 1 2004-01-31 02:55:20 +00:00