Extensions to the IMatch Photo Gallery Creator

Release Notes

Last modified 6/12/07 21:52    Revision 29

Gallery templates that work with the original IMatch Photo Gallery Creator script should work unchanged with the modified script. All files of the original Photo Gallery Creator were duplicated with different names and coexist with the original files.

Contents

Major Extensions
Credits
License
Known Issues
Summary Of Changes By Revision
Change Coordination Process

Major Extensions

Refer to the list of changes in the following sections for details.

Credits

Hi, my name is Jürgen Failenschmid. I'm the original author of the extended photo gallery creator script. The extensions are based on the good script that is part of IMatch. I also picked up a few extensions posted to the IMatch user forum.

Contributors:

I'd like to thank all individuals who contributed their time to test the script and everyone for providing valuable suggestions for improvements. Special thanks go to David J. Bookbinder, Markus Hässig, Ferdinand Paris, and Andreas Siegert.

License

THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS LICENSE ("LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.

BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.

1. Definitions

  1. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, in any form recognizably derived from the original.
  2. "Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership.
  3. "Licensor" means Jürgen Failenschmid who offers the Work under the terms of this License.
  4. "Original Author" means Jürgen Failenschmid who created the Work.
  5. "Work" means all files that comprise the script "Extensions to the IMatch Photo Gallery Creator" offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression.
  6. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
  7. "Reproduce" means to make copies of the Work by any means in digital form or other electronic medium.

2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.

3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:

  1. to Reproduce the Work; and,
  2. to use the Work to generate picture galleries, whether or not the use is primarily intended for or directed toward commercial advantage or private monetary compensation.

Subject to section 8, all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4.

4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:

  1. You may use the Work only under the terms of this License.
  2. You may not sublicense the Work.
  3. You have no rights to Distribute the work.
  4. You have no rights to make Adaptations other than by adhering to the Change Coordination Process.
  5. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation.

5. Representations, Warranties and Disclaimer

UNLESS OTHERWISE MUTUALLY AGREED BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.

6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. Termination

  1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
  2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.

8. Miscellaneous

  1. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
  2. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.
  3. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.

Known Issues

Due to the inherent browser dependency of Javascript there is no guarantee that the generated web pages will work with a particular browser type and/or version. This is especially true for pages generated with the CatTree generator.

The latest revision is typically tested with most recent public versions of Internet Explorer and Mozilla Firefox. The included Javascript code is believed to work with Internet Explorer versions 4 and later, with Firefox versions 1.4 and later, and with Netscape versions 6 and later.

Summary of Changes in Revision 39 (1.4.2 Release)

  1. (JF) Fixed: discovered further scripting API changes that manifest themselves only if IMatch 3.6 is installed from scratch.

Summary of Changes in Revision 38 (1.4.1 Release)

  1. (JF) Fixed: compatible with the API changes in IMatch version 3.6.

Summary of Changes in Revision 37 (1.4 Release)

  1. (FP) Added new variable "NextImage" which is the filename of the image on the next page. This variable can be used in combination with Javascript to preload the next image, e.g., for faster transitions.
  2. (FP) Main dialog window: all options of the initial dialog box are now saved as new defaults, instead of just the output folder value. The settings are recalled when the script is run again.
  3. (FP) Added KVP IncludeCategories. As an alternative to KVP ExcludeCategories, you can specify which categories to include, and only these categories will appear. It is possible to include a category and exclude some of its subcategories.
  4. (FP, JF) Added panorama image sizing for all image lists and for selected image lists. You con define what is considered a "panorama" using the width-to-height aspect ratio. Panorama images are sized by height rather than width. Additionally, panorama images can be separately scaled.
  5. (JF) Image lists now support the copying of the original JPEG image files without any processing.
  6. (JF) Added option to always use the full resolution image even if an embedded preview image could be used.
  7. (JF) Improved the sizing of text added to images. In previous versions, text placed on the image was sized in proportion to the image width, which made the text size unpredictable. The text size is now fixed and can be specified in addition to the font name. The default text size is 12 points. If the text with the specified size does not fit, the text size is reduced to a minimum of 7 points, as in previous versions.
  8. (JF) Fixed: if the original image dimension were requested by specifying size "*", the script erroneously used the embedded preview image for certain raw files.
  9. (JF) Fixed: checking and creating of the output folder in certain cases.
  10. (JF) Fixed: minor issues during processing of uncached, offline images.

Summary of Changes in Revision 31 (1.3 Release)

  1. (JF) Fixed: compatible with the API changes in IMatch version 3.5.0.16.
  2. (JF) Included gallery presets feature up to 4 sizes per image, drop shadows, and avoid popup windows.
  3. (JF) Fixed presets that caused a problem in the Firefox browser.

Summary of Changes in Revision 30 (1.2 Release)

  1. (JF) Added keyword SortCategories that controls sorting of sibling categories. Sibling categories can be sorted alphabetically by name or sorted like in the category view.
  2. (JF) Fixed: the script is compatible with the type name changes in IMatch version 3.4.0.30.
  3. (JF) Fixed: the script execution can be cancelled when a sort preset-related error occurs.
  4. (JF) Added examples of most features in sample preset files.
  5. (JF) Simplified installation of sample preset files. Made generated galleries self-contained.

Summary of Changes in Revision 27 (1.1 Release)

  1. (MW) Added special variables for the dimensions of output images. Allows custom formatting of the numbers. For example, these variables can be used to properly specify width= and height= arguments for images referenced in generated HTML.
  2. (JF) Added new optional ImageList argument "Quality" that overrides the global setting in keyword "ImageQuality"
  3. (JF) Added new global keyword "ImageFormat" and new optional ImageList argument "Format" to override the global setting. The value specifies the desired format for the generated JPEG output files.
  4. (JF) Added new global keywords "ImagePreResize" and "ImagePostResize" and new optional ImageList arguments "PreResize" and "PostResize" to override the corresponding global settings. The value specifies a series of image manipulation commands. The "pre"-commands are applied prior to image resizing and the "post-commands are applied after image resizing. Supported image manipulation commands:  unsharp, sharpen, intensity, gamma, contrast, histogramEqualize, histogramStretch, hue, saturation, average, removeNoise, gaussianBlur.
  5. (JF) ImageList arguments: all white space characters are now ignored and capitalization of arguments is irrelevant.
  6. (JF) Fixed: checking the dimensions of a low-resolution snapshot of a raw format image.
  7. (JF) Fixed: the warning dialog about an offline image displays only if there is also no offline cache image. Also implemented workaround for defect in GetOfflineCacheImage.
  8. (JF) Fixed: the value "On" for a Boolean settings turns the setting on, as was stated in the documentation.
  9. (JF) Tested with IMatch version 3.4.0.14.

Summary of Changes in Revision 25 (1.0 Release)

  1. (JF) Extended Photo Gallery Creator 1.0 release.

Summary of Changes in Revision 24

  1. (JF) Added new generator type CatTree: navigation of the category structure is accomplished with expandable/collapsible sub lists. This new generator has all the relevant features of the CatNavPage generator.
  2. (JF) CatNavPage generator: added link to the top of the category navigation structure for categories that are at least two levels below the top category. The top link can be placed in the same row as the back link, or in its own row. Added trtop and tdtop arguments. Added special variables for the name and description of the top category.
  3. (JF) CatNavPage generator: fixed the CSS class for subcategories from none to CellNormal.
  4. (JF) CatNavPage generator: the value of @All.Name is now correctly used instead of "@All" when all generator arguments are defaults.
  5. (JF) GridPage generator: fixed so that it can be used without the td argument present.
  6. (JF) Fixed: in certain cases if there was an error during image processing the image file name was not included in the error message.
  7. (JF) Fixed: provide more information in case of errors during reading and writing of HTML files.
  8. (JF) Fixed: Light table sort is used correctly if category is selected but preset doesn't use CatNavPage, CatTree or IPTCIndex generators.
  9. (JF) Fixed: main page is no longer opened in certain cases if there was an unrecoverable error or user cancelled the generation of pages.

Summary of Changes in Revision 20

  1. (JF) Tested with IMatch version 3.4.0.8.
  2. (JF) CatNavPage generator: can exclude categories from navigation in image selection mode and specify a category for any orphaned images.
  3. (JF) IPTCIndex generator: generated HTML files can be written to subfolders.
  4. (JF) IPTCIndex generator: the name of the navigation pages can be specified in the ProcessFile statement - it's no longer hard coded as kwindex.htm.
  5. (JF) Can use variables in the name argument of the ProcessFile statement.
  6. (JF) Can specify the name for the web's main page in the preset file, e.g. index.html, main.htm.

Summary of Changes in Revision 18

  1. (JF,HN) New option of ImageList allows copying of IPTC information to output images.
  2. (JF) CatNavPage generator: given a selection of images instead of a category, it generates a sub tree of the categories in the database that includes all nearest common ancestors of all categories assigned to the selected images.
  3. (JF) CatNavPage generator: capitalization of Light Table sort preset is irrelevant.
  4. (JF) CatNavPage generator: fixed the implementation of the rootCategory argument. Light table sort works correctly now.
  5. (JF) CatNavPage generator: fixed syntax errors if special variables like <#CurCatName#> or <#ParentCatName#> were used inside of special function expressions and the relevant category is @All.
  6. (JF) CatNavPage generator: added special variables for category descriptions (e.g. <#CurCatDesc@#>) that automatically insert backslash characters in front of any @-character.
  7. (JF) CatNavPage generator: when replacing special variables for parent category properties, such as <#ParentCatName#>, @All is now correctly used as the parent of level-1 categories.
  8. (JF) Added keywords @All.FullName, @All.Name, @All.Description to be able to change the replacement values of  special variables for category properties, such as <#CurCatName#>. IMatch does not allow changing of properties of the @All category.
  9. (JF) Added a default mapping for the @-character to the Escape special function.
  10. (JF) Fixed endless loop that could occur in case of syntax errors involving nested special functions.
  11. (JF) The message box for errors during sorting is only displayed once per script run.
  12. (JF) Fixed: the main dialog is no longer obscured by the IMatch window after closing the target folder selection dialog.
  13. (JF) Fixed: the target folder text box is not emptied if the target folder selection dialog is cancelled.

Summary of Changes in Revision 12

  1. (JF) Preset file allows continuation lines.
  2. (JF) Extended gallery script is now listed in the same submenu as the original script of IMatch.
  3. (JF) Template selection dialog displays version information of the script core file.
  4. (JF) ImageList allows text to be added to an image in up to nine locations, optionally each text in a different font. The default location is right-aligned at the bottom of the image.

Summary of Changes in Revision 10

  1. (JF) Extended script is based on IMatch version 3.4.0.6.
  2. (DJB) target folder creation delayed until after the script main dialog closes.
  3. (DJB) Image list allows folder name.
  4. (DJB) Added special variables <#PrevImageNo#> and <#NextImageNo#> for ImagePage generator. This can be used for navigation of images in a popup preview window.
  5. (KS) Light table sort method is used for all categories, not just the root category.
  6. (JF) Subfolders are only created once.
  7. (JF) Subfolders are removed if the user selects to clean the target folder.
  8. (JF) Read-only files are removed if the user selects to clean the target folder.
  9. (JF) Generated HTML files can be written to subfolders, except for the IPTCIndex generator.
  10. (JF) Can use <@...@> to call various functions to manipulate substituted variables and strings. Functions include IfEmpty, IfNotEmpty, IfEqual, IfNotEqual, Format, Escape, Trim.
  11. (JF) Fixed inconsistencies of values indicating that a keyword is "on".
  12. (JF) Added special variable for the size of output image files. Allows custom formatting of the number.
  13. (JF) Image list allows text to be added to images using a specified font face. Several text arguments are evaluated until one is found that is not empty.
  14. (JF) ImagePage generator: fixed the processing of linkto: argument. This allows navigation of image pages (e.g. in popup windows) using the special variables <#FirstPage#>, <#PrevPage#>, <#NextPage#>, <#LastPage#> without the need for a separate frame.
  15. (JF) GridPage generator can also use linkto: argument and the special variables to navigate the pages as with the ImagePage generator.
  16. (JF) CatNavPage generator: fixed incorrect values for <#CurCatID#> and variables related to current category.
  17. (JF) CatNavPage generator: fixed missing category cells if no td: argument is specified.
  18. (JF) CatNavPage generator: fixed missing </td> end tags.
  19. (JF) CatNavPage generator: fixed omitted substitution of nested special variables in certain cases.
  20. (JF) CatNavPage generator: fixed the class used for the tdcur: argument to CellCur instead of CellBack.
  21. (JF) CatNavPage generator: if keyword CalculateCategories has the value "formula", then only direct images are processed for categories without any formula. Calculated images are processed for categories with a formula.
  22. (JF) CatNavPage generator: added keyword IncludeEmptyCategoryBranches. If this is set to "on", then the generator includes category branches that don't have any direct or indirect images. The default is "off".
  23. (JF) CatNavPage generator: added special variable for the number of selected images per category.
  24. (JF) CatNavPage generator: added arguments tdbranch: and tdleaf:. These override the td: argument for custom control of table cell layouts.
  25. (JF) CatNavPage generator: added special variables <#ParentCatName#>, <#ParentCatFullName#>, <#ParentCatDesc#>, <#ChildCatName#>, <#ChildCatFullName#>, <#ChildCatDesc#>.
  26. (JF) CatNavPage generator: @All can be specified as the root of the category navigation pages.
  27. (JF) In certain cases more information is provided about errors during script execution.
  28. (JF) Added to the gallery creator help file existing features without documentation.
  29. (JF) Documented the extensions in the gallery creator help file. See text marked with gray background.

Change Coordination Process

I'd be glad to coordinate changes to the web gallery script. If you would like to contribute to the Extended Photo Gallery Creator script, please follow these steps.

One of the main design centers of the Extended Photo Gallery script is that IMatch users can simply install it coexisting with the IMatch gallery script and use existing presets/templates for the IMatch photo gallery script without modifications. I put a lot of effort into documenting the added features with appropriate examples. Examples for most features are also provided as sample gallery presets/templates. Anticipating future updates to IMatch, all changes to the script files were documented, facilitating future merging.

Regarding your changes, please e-mail these new and/or changed files: