Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / vendor / lsolesen / pel / CHANGELOG.md
diff --git a/vendor/lsolesen/pel/CHANGELOG.md b/vendor/lsolesen/pel/CHANGELOG.md
new file mode 100644 (file)
index 0000000..47862f7
--- /dev/null
@@ -0,0 +1,508 @@
+## CHANGELOG
+
+## 0.9.4 - 2016-03-21
+
+Notes:
+
+This is mainly a cleanup version and better composer integration.
+We added Scrutinizer, which should make sure that the code improves
+in the future.
+
+Changes:
+
+* Improved performance of PelJpeg.
+
+* Fixed wrong usage of private variable in examples.
+
+
+## 0.9.3 - 2015-08-08
+
+Notes:
+
+This is a major update, and should have been the first tag of the
+0.10.0 series. If you want to use the latest stable version without
+namespaces, you should use 0.9.2.
+
+Changes:
+
+* Introduced namespaces.
+
+* Added composer support and made it available on
+  [packagist.org](https://packagist.org/packages/lsolesen/pel) and
+  introduced PSR-4 autoloader.
+
+* Major cleanup of the code and following PSR-2 standards.
+
+
+## 0.9.2 - 2010-03-09
+
+Notes:
+
+This release is the last release before introducing namespaces.
+
+Added a static method, Pel::setJPEGQuality(), for controlling the
+quality for encoding JPEG images. Fixed bug in conversion between
+Julian Day count and UNIX timestamps and removed dependency on the
+calendar PHP extension. Fixed placement of Windows XP tags. Added GPS
+example.
+
+Changes:
+
+* Added an example of how GPS information can be added. Thanks Andac
+  Aydin for contributing and testing this.
+
+* Fixed PelJpegComment::getBytes(): it didn't return anything! Thanks
+  macondos.
+
+* Fixed SF bug #1699489: Incorrect UNIX/Julian conversion.
+
+* PEL 0.9.1 introduced a dependency on the calendar extension for PHP.
+  The necessary functions have now been reimplemented in pure PHP. The
+  patch was supplied by Francois Pirsch, thanks.
+
+* Fixed doc comment for PelEntryTime, the variables for date() was
+  swapped. Thanks Francois Pirsch.
+
+* Added static Pel::setJPEGQuality() and Pel::getJPEGQuality() method
+  for setting and getting the quality used when PelJpeg automatically
+  converts an image resource to a JPEG image. Thanks Csaba Gabor for
+  asking about this.
+
+* Moved the XP specific tags from the Exif IFD to the IFD0/1 IFD.
+  Thanks Piotr Golebiowski for noticing this.
+
+* Added links from PelTag::XP_* tags to the PelEntryWindowsString
+  class. Thanks Garrison Locke for indirectly pointing out the need
+  for this.
+
+
+## 0.9.1 - 2016-12-19
+
+Notes:
+
+Added setExif(), getExif(), and clearExif() methods as a convenient
+and recommended way of manipulating the Exif data in a PelJpeg object.
+Improved PelEntryTime to deal with timestamps in the full range from
+year 0 to year 9999. Removed PelTag::getDescription() because the
+descriptions were out of context. A new example demonstrates how to
+resize images while keeping the Exif data intact. Added a Japanese and
+updated the French and Danish translations.
+
+Changes:
+
+* The constructors of PelJpeg and PelTiff can now take an argument
+  which is used for initialization. This can be a filename (equivalent
+  to calling loadFromFile()), a PelDataWindow (equivalent to load()).
+  The PelJpeg constructor will also accept an image resource.
+
+* Added PelJpeg::setExif(). This method should always be used in
+  preference to PelJpeg::insertSection() and PelJpeg::appendSection().
+  One should actually not be using appendSection() unless one is very
+  sure that the image has not been ended by a EOI marker.
+
+* Added PelJpeg::getExif().  This method is the new preferred way of
+  obtaining the PelExif object from a PelJpeg object.  Updated the
+  examples and code to make use of it.
+
+* An example of how to resize images while keeping the Exif data
+  intact is given in resize.php.
+
+* The PelTag::getDescription() method is no more. The descriptions
+  were taken directly from the Exif specification and they were often
+  impossible to translate in a meaningful out of context because they
+  had references to figures and tables from said specification.
+
+* Fixed bug in edit-description.php which still called the constructor
+  of PelIfd in the old pre-0.9 way.
+
+* Updated documentation of PelIfd to make it clearer that it can be
+  used as an array because it implements the ArrayAccess SPL (Standard
+  PHP Library) interface.
+
+* Added Japanese translation by Tadashi Jokagi.
+
+* Update by David Lesieur of the French translation.
+
+* Rewrote entry for version 0.9 in NEWS to highlight the API
+  incompatible changes made from version 0.8.
+
+* Renamed test.php to run-tests.php and implemented a simple search
+  functionality for finding the SimpleTest installation.
+
+* Rewrote make-release.sh script to work with Subversion.
+
+## 0.9.0 - 2006-01-08
+
+Notes:
+
+Added full support for GPS information (this breaks API compatibility
+with version 0.8), JPEG comments, the Gamma tag, and Windows XP
+specific title, comment, author, keywords, and subject tags.
+Implemented a non-strict mode for broken images where most errors wont
+result in visible exceptions.  The edit-description.php example now
+correctly deals with images with no previous Exif data.  A partial
+Polish translation was added. The API documentation was updated with
+details about the constrains on format and number of components for
+each tag.
+
+API incompatible changes:
+
+* Changed PelIfd::getSubIfd() to take an IFD type as argument instead
+  of a PelTag.  The IFD types are constants in PelIfd.  So use
+
+    $exif = $ifd0->getSubIfd(PelIfd::EXIF);
+
+  instead of
+
+    $exif = $ifd0->getSubIfd(PelTag::EXIF_IFD_POINTER);
+
+  in your code.
+
+* Added support for the GPS IFD.  This API break compatibility with
+  version 0.8.  The problem is that the GPS related tags have the same
+  value as some other tags, and so the function PelTag::getName(),
+  PelTag::getTitle(), and PelTag::getDescription() has been changed to
+  take an extra argument specifying IFD type of the tag.
+
+  This might change very well further in the future.
+
+Changes:
+
+* Added support for JPEG comments through the PelJpegComment class
+  which works almost like PelEntry (use getValue() and setValue() to
+  read and write the comment).
+
+* Enabled iterating a PelIfd object with foreach().  It will iterate
+  over (PelTag, PelEntry) pairs.
+
+* Added PelIfd::getValidTags() which return an array of tags valid for
+  the IFD in question.  Using this, PEL now reject entries in wrong
+  IFDs.  For example, you cannot have a UserComment tag in a IFD for
+  GPS information.
+
+* Added a new concept of strict/non-strict mode.  The old behavior
+  was strict mode where an errors would abort the loading of an image
+  because of exceptions --- in non-strict mode most exceptions will be
+  trapped and broken images can still be loaded.  See the description
+  in Pel.php and the answer in the FAQ for more information.
+
+* Added support for the 0xA500 Gamma tag.
+
+* Changed paths in example shell scripts to /usr/bin/php and explained
+  in the README how to execute them.
+
+* Updated FAQ with information about making Gettext work and the new
+  strict/non-strict mode.
+
+* Added support for Windows XP specific title, comment, author,
+  keywords, and subject tags.  These tags can be edited in Windows XP
+  in the Properties dialog found by right-clicking on an image.
+
+* A number of translations in the German, French, and Spanish
+  translations were inactive because of small differences between PHP
+  and C (such as using %d and %i in format strings).
+
+* Added Polish translation by Jakub Bogusz from the libexif project.
+
+* Corrected tag documentation in PelTag.
+
+* Made edit-description.php correctly add an empty Exif structure in
+  case the original image has none.
+
+* Removed PelJpegContent::getSize() method.  Calling this method in
+  the PelExif subclass resulted in an error, and overriding it
+  correctly in PelExif would have required too much code to justify
+  the effort.
+
+* Better doc comments and small code cleanups in PelJpeg.php,
+  PelExif.php, and PelIfd.php.
+
+* PelEntry.php now unconditionally includes the class definitions of
+  all the entry types.  The conditionally loading only worked when one
+  created a new PelJpeg object, but not when one had stored such an
+  object in, say, a session.
+
+* Moved PelEntry::newFromData() to PelIfd::newEntryFromData() since it
+  needs knowledge about PelIfd::$type.  Updated the documentation it
+  to indicate that one shouldn't use this method unless the data comes
+  directly from an image.  The method signature was corrected with a
+  type hint, so that $data really is a PelDataWindow.
+
+* Updated the documentation in PelTag.  All tags now details their
+  expected format and the expected number of components.  One can
+  still freely choose to obey or disregard these constrains, but doing
+  so will lead to non-compliant images, which might cause PEL to throw
+  exceptions when reloading.
+
+* Updated the documentation in PelFormat with links to the PelEntry
+  classes corresponding to each format.
+
+* Updated the make-release.sh script to use a run-phpdoc.sh script for
+  generating the API documentation.
+
+
+## 0.8.0 - 2005-02-18
+
+Notes:
+
+Erroneous entries will now be skipped while loading instead of causing
+a total abort.  The documentation was expanded with a short tutorial
+and a FAQ.  New test images were added from Leica D-LUX, Olympos C50Z
+and C765 cameras.
+
+Changes:
+
+* Added more documentation in the form of a short tutorial and a FAQ.
+
+* Instead of aborting on load errors, PelIfd::load() will now continue
+  with the next entry.  A warning will be issued if debugging is
+  turned on in PEL.
+
+* Added a PelEntryException class.  When an entry cannot be loaded in
+  PelEntry::newFromData(), an appropriate subclass of this exception
+  will be thrown.
+
+* Described the requirements in terms of formats and component counts
+  in the documentation for individual tags in PelTag.
+
+* Fixed the edit-description.php example, it still used PelEntryString
+  instead of PelEntryAscii.  Thanks goes to Achim Gerber.
+
+* Fixed the throwing of a PelWrongComponentCountException in PelEntry,
+  the class name was misspelled.
+
+* Added abstract getValue() and setValue() methods to PelEntry, to
+  better describe that all objects representing Exif entries have
+  those two methods.
+
+* Updated copyright statements throughout the source to year 2005.
+
+* Fixed (some) of the XHTML errors in the phpDocumentor template.
+
+
+## 0.7.0 - 2004-10-10
+
+Notes:
+
+Running PEL under PHP version 5.0.2 would produce incorrect Exif data,
+this was fixed so that PEL works correctly on all versions of PHP 5.
+PEL now runs on installations without support for Gettext, but does so
+with English texts only.  A new example script was added, showing how
+one can mass-rename images based on their timestamps using PEL.  The
+Danish translation was updated slightly.  The collection of test
+images has been split out as a separate download, cutting down on the
+size of a PEL download.
+
+Changes:
+
+* The image tests are now split into their own, separate download.
+
+* Added a test image from a Canon PowerShot S60.
+
+* Fixed a bug caused by a change in the way PHP 5.0.2 handles integers
+  larger than 2^31-1.  This change means that one can no longer use
+  PelConvert::longToBytes() to convert both signed and unsigned bytes,
+  one must now use sLongToBytes() for signed longs and longToBytes()
+  for unsigned bytes.
+
+* Added a work-around, so the PEL will run (with English texts only)
+  on installations without support for Gettext.
+
+* Added test/rename.php which shows how one can easily rename images
+  based on their Exif timestamps.
+
+* Updated the Danish translation.
+
+* Removed trailing newlines at the end of Pel.php and PelConvert.php.
+
+
+## 0.6 - 2004-07-21
+
+Notes:
+
+The interface for PelJpeg and PelTiff was changed so that one can now
+add new content from scratch to JPEG and TIFF images.  Bugs in the
+loading of signed bytes and shorts were fixed, as well as a bug where
+timestamps were saved in UTC time, but loaded in local time.  The code
+that turned PelJpeg objects into bytes was fixed, and new test cases
+were written to test the writing and reading of PelJpeg objects to and
+from files.  New images from Nikon models E950, E5000, and Coolscan IV
+have been added to the test suite, bringing the total number of tests
+up to more than 1000.
+
+Changes:
+
+* The timestamps were saved as UTC time in PelEntryTime, but loaded as
+  local time in PelEntry.  This lead to differences when one tried to
+  load a previously saved timestamp.
+
+* Changed the constructors in PelJpeg, PelExif, PelTiff, and PelIfd so
+  that one can now make new objects without filling them with data
+  immediately.  This makes it possible to add, say, a new APP1 section
+  with Exif to a JPEG image lacking such information.
+
+* Fixed loading of signed bytes and shorts in PelConvert.
+
+* Renamed the isValidMarker() method into just isValid() in
+  PelJpegMarker, so that it matches the other isValid() methods found
+  in PelJpeg and PelTiff.
+
+* Added test images from Nikon models E950, E5000 and the film scanner
+  Coolscan IV ED, and added tests that would read their contents.
+
+* The shell scripts could only be run from the test directory because
+  of the use of relative paths in the require_once() statements.  The
+  scripts can now be run from any directory.
+
+* A stupid bug that prevented PelJpeg objects from being turned into
+  bytes was fixed.
+
+* Fixed the output of PelEntryRationals::getText().
+
+
+## 0.5.0 - 2004-06-28
+
+Notes:
+
+This release has been tested with images from a number of different
+camera models (from Fujifilm, Nikon, Ricoh, Sony, and Canon), leading
+to the discovery and fixing of a number of bugs.  The API for
+PelJpeg::getSection() was changed slightly, making it more convenient
+to use.  All classes and methods are now documented.
+
+Changes:
+
+* Some images have content following the EOI marker --- this would
+  make PEL thrown an exception.  The content is now stored as a
+  PelJpegContent object associated with the fictive marker 0x00.
+
+* Added code to handle images where the length of the thumbnail image
+  is broken.  PEL would previously throw an exception, but the length
+  is now adjusted instead, and the parsing continues.
+
+* Fixed a number of bugs regarding the conversion back and forth
+  between integers and bytes.  These bugs affected the parsing of
+  large integers that would overflow a signed 32 bit integer.
+
+* Fixed bug #976782.  If an image contains two APP1 sections, PEL
+  would crash trying to parse the second non-Exif section.  PEL will
+  now just store a non-Exif APP1 section as a generic PelJpegContent
+  object.
+
+* Removed the PelJpegSection class.  This lead to a rewrite of the
+  PelJpeg::getSection() method, so that it now takes a PelJpegMarker
+  as argument instead of the section number.
+
+* The byte order can now be specified when a PelTiff object is
+  converted into bytes.
+
+* Updated documentation, PEL is now fully documented.
+
+
+## 0.4.0 - 2004-06-09
+
+Notes:
+
+The infrastructure for internationalization has been put in place.
+Preliminary translations for Danish, German, French, and Spanish is
+included.  Support for tags with GPS information were disabled due to
+conflicts with a number of normal tags.
+
+Changes:
+
+* Disabled the code that tries to look up the title and description of
+  the GPS related tags, since those tags have the same hexadecimal
+  value as a number of other normal tags.  This means that there is no
+  support for tags with GPS information.
+
+* Marked strings for translation throughout the source code.
+
+* Added German, French, and Spanish translations taken from libexif.
+  The translations were made by Lutz M�ller, Arnaud Launay, and Fabian
+  Mandelbaum, respectively.
+
+* Added Danish translation.
+
+* Added new static methods Pel::tra() and Pel::fmt() which are used
+  for interaction with Gettext.  The first function simply translates
+  its argument, the second will in addition function like sprintf()
+  when given several arguments.
+
+* Updated documentation, both the doc comments in the code and the
+  README and INSTALL files.
+
+
+## 0.3.0 - 2004-05-25
+
+Notes:
+
+Support was added for parsing TIFF images, leading to a mass renaming
+of files and classes to cleanup the class hierarchy.  The decoding of
+Exif data is now tested against known values (over 400 individual
+tests), this lead to the discovery of a couple of subtle bugs.  The
+documentation has been updated and expanded.
+
+Changes:
+
+* Renamed all files and classes so that only Exif specific code is
+  labeled with Exif.  So, for example, PelExifIfd is now PelIfd, since
+  the IFD structure is not specific to Exif but rather to TIFF images.
+  The same applies to the former PelExifEntry* classes.
+
+* Fixed offset bug in PelDataWindow::getBytes() which caused the
+  method to return too much data.
+
+* Added support for the SCENE_TYPE tag.
+
+* Fixed display of integer version numbers.  Version x.0 would be
+  displayed as just version 'x' before.
+
+* Unit tests for Exif decoding.  PEL is now tested with an image from
+  a Sony DSC V1 and one from a Canon IXUS II.
+
+* Changed all occurrences of include_once() to require_once() since
+  the files are required.
+
+* Updated documentation all over.
+
+
+## 0.2.0 - 2004-05-16
+
+Notes:
+
+This release brings updated documentation and better support for the
+Exif user comment tag and tags containing version information.  The
+code is now tested using SimpleTest.
+
+Changes:
+
+* All PelExifEntry descendant classes now use setValue() and
+  getValue() methods consistently.
+
+* Signed and unsigned numbers (bytes, shorts, longs, and rationals)
+  are now handled correctly.
+
+* The SimpleTest (http://sf.net/projects/simpletest) framework is used
+  for regression testing.
+
+* Added new PelExifEntryUserComment class to better support the Exif
+  user comment tag.
+
+* Added new PelExifEntryVersion class to support the Exif tags with
+  version information, namely the EXIF_VERSION, FLASH_PIX_VERSION, and
+  INTEROPERABILITY_VERSION tags.
+
+* Updated doc comments all over.
+
+
+## 0.1.0 - 2004-05-08
+
+Notes:
+
+The initial release of PEL.  Most of the functionality is in place:
+JPEG files are parsed, Exif entries are found and interpreted, the
+entries can be edited and new entries can be added, and finally, the
+whole thing can be turned into bytes and saved as a valid JPEG file.
+
+The API is still subject to change, and will remain so until version
+1.0 is reached.