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
New generator type CatTree uses expandable/collapsible tree structure to
navigate the categories of generated pages. This new generator also has all
the relevant features of the CatNavPage generator.
Many extensions to the CatNavPage generator: selection of images
determines the set of categories that are in the category navigation pages,
categories can be included or excluded from the navigation pages, empty category branches
can be skipped, new variables were added to access properties of parent and
child categories and many more new features.
Image files and generated HTML files can be written to subfolders of the
target folder for all generator types.
Images can be manipulated.
Special sizing of panorama images.
IPTC information can be copied to the generated output image files.
Text can be added to the output images.
Added special string manipulation functions to enhance the power of KVPs
and IMatch variables.
Light table sorts work for all categories, not just the top category.
The documentation was enhanced substantially.
Many defects in the original script were fixed.
Refer to the list of changes in the following sections for details.
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
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
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
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
"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
"Distribute" means to make available
to the public the original and copies of the Work through
sale or other transfer of ownership.
"Licensor" means Jürgen
Failenschmid who offers the Work
under the terms of this License.
"Original Author" means Jürgen
Failenschmid who created the Work.
"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.
"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.
"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
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:
to Reproduce the Work; and,
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:
You may use the Work only
under the terms of this License.
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
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
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.
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.
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.
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.
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.
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
The latest revision is typically tested with most recent public
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)
(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)
(JF) Fixed: compatible with the API changes in IMatch version 3.6.
Summary of Changes in
Revision 37 (1.4 Release)
(FP) Added new variable "NextImage" which is the filename of the image on
preload the next image, e.g., for faster transitions.
(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.
(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.
(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.
(JF) Image lists now support the copying of the original JPEG image files
without any processing.
(JF) Added option to always use the full resolution image even if an
embedded preview image could be used.
(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.
(JF) Fixed: if the original image dimension were requested by specifying
size "*", the script erroneously used the embedded preview image for certain
(JF) Fixed: checking and creating of the output folder in certain cases.
(JF) Fixed: minor issues during processing of uncached, offline
Summary of Changes in
Revision 31 (1.3 Release)
(JF) Fixed: compatible with the API changes in IMatch version 18.104.22.168.
(JF) Included gallery presets feature up to 4 sizes per image, drop
shadows, and avoid popup windows.
(JF) Fixed presets that caused a problem in the Firefox browser.
Summary of Changes in
Revision 30 (1.2 Release)
(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.
(JF) Fixed: the script is compatible with the type name changes in IMatch
(JF) Fixed: the script execution can be cancelled when a sort
preset-related error occurs.
(JF) Added examples of most features in sample preset files.
(JF) Simplified installation of sample preset files. Made generated galleries
Summary of Changes in Revision 27 (1.1 Release)
(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
(JF) Added new optional ImageList argument "Quality" that overrides the
global setting in keyword "ImageQuality"
(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.
(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,
(JF) ImageList arguments: all white space characters are now ignored and
capitalization of arguments is irrelevant.
(JF) Fixed: checking the dimensions of a low-resolution
snapshot of a raw format image.
(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.
(JF) Fixed: the value "On" for a Boolean settings turns the setting on, as
was stated in the documentation.
(JF) Tested with IMatch version 22.214.171.124.
Summary of Changes in Revision 25 (1.0 Release)
(JF) Extended Photo Gallery Creator 1.0 release.
Summary of Changes in Revision 24
(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.
(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.
(JF) CatNavPage generator: fixed the CSS class for subcategories from none
(JF) CatNavPage generator: the value of @All.Name is now correctly used
instead of "@All" when all generator arguments are defaults.
(JF) GridPage generator: fixed so that it can be used without the td
(JF) Fixed: in certain cases if there was an error during image processing
the image file name was not included in the error message.
(JF) Fixed: provide more information in case of errors during reading and
writing of HTML files.
(JF) Fixed: Light table sort is used correctly if category is selected but
preset doesn't use CatNavPage, CatTree or IPTCIndex generators.
(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
(JF) Tested with IMatch version 126.96.36.199.
(JF) CatNavPage generator: can exclude categories from navigation in image
selection mode and specify a category for any orphaned images.
(JF) IPTCIndex generator: generated HTML files can be written to
(JF) IPTCIndex generator: the name of the navigation pages can be
specified in the ProcessFile statement - it's no longer hard coded as
(JF) Can use variables in the name argument of the ProcessFile statement.
(JF) Can specify the name for the web's main page in the preset file, e.g.
Summary of Changes in Revision 18
(JF,HN) New option of ImageList allows copying of IPTC information to
(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
(JF) CatNavPage generator: capitalization of Light Table sort preset is
(JF) CatNavPage generator: fixed the implementation of the rootCategory
argument. Light table sort works correctly now.
(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.
(JF) CatNavPage generator: added special variables for category
descriptions (e.g. <#CurCatDesc@#>) that automatically insert backslash
characters in front of any @-character.
(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.
(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.
(JF) Added a default mapping for the @-character to the
Escape special function.
(JF) Fixed endless loop that could occur in case of syntax errors
involving nested special functions.
(JF) The message box for errors during sorting is only displayed once per
(JF) Fixed: the main dialog is no longer obscured by the IMatch window
after closing the target folder selection dialog.
(JF) Fixed: the target folder text box is not emptied if the target folder
selection dialog is cancelled.
Summary of Changes in Revision 12
(JF) Preset file allows continuation lines.
(JF) Extended gallery script is now listed in the same submenu as the
original script of IMatch.
(JF) Template selection dialog displays version information of the script
(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
(JF) Extended script is based on IMatch version 188.8.131.52.
(DJB) target folder creation delayed until after the script main dialog
(DJB) Image list allows folder name.
(DJB) Added special variables <#PrevImageNo#> and <#NextImageNo#> for
ImagePage generator. This can be used for navigation of images in a popup
(KS) Light table sort method is used for all categories, not just the root
(JF) Subfolders are only created once.
(JF) Subfolders are removed if the user selects to clean the target
(JF) Read-only files are removed if the user selects to clean the target
(JF) Generated HTML files can be written to subfolders, except for the
(JF) Can use <@...@> to call various functions to manipulate substituted
variables and strings. Functions include IfEmpty, IfNotEmpty, IfEqual,
IfNotEqual, Format, Escape, Trim.
(JF) Fixed inconsistencies of values indicating that a keyword is "on".
(JF) Added special variable for the size of output image files. Allows
custom formatting of the number.
(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
(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.
(JF) GridPage generator can also use linkto: argument and the special
variables to navigate the pages as with the ImagePage generator.
(JF) CatNavPage generator: fixed incorrect values for <#CurCatID#> and
variables related to current category.
(JF) CatNavPage generator: fixed missing category cells if no td: argument
(JF) CatNavPage generator: fixed missing </td> end tags.
(JF) CatNavPage generator: fixed omitted substitution of nested special
variables in certain cases.
(JF) CatNavPage generator: fixed the class used for the tdcur: argument to
CellCur instead of CellBack.
(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.
(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".
(JF) CatNavPage generator: added special variable for the number of
selected images per category.
(JF) CatNavPage generator: added arguments tdbranch: and tdleaf:. These
override the td: argument for custom control of table cell layouts.
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.
Use the latest revision of the Extended Photo Gallery archive as
Inform me by e-mail about the intended changes and the timeline.
Please request the unit test script source and I'll e-mail it to you. The unit
test script is a stand-alone script written just for the
purpose of unit-testing all subroutines and functions used in the gallery
script. Also, if the project is large, we can discuss splitting it up.
the changed and tested files to me. See details below.
I'll integrate all changes by comparing with the baseline,
prepare new release notes and create a new release archive.
If the changes are sweeping, we invite a few volunteers for
beta-testing during an appropriate time period.
The new revision is posted by me to the forum files area in
folder "Extended Photo Gallery Creator".
If a new IMatch version/update is released, I coordinate
regression testing of the Extended Photo Gallery Creator script, as needed.
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: