| Age | Commit message (Collapse) | Author | Files | Lines |
|
This change brings the possibility to tweak resize options using standard
ImageMagick `convert` command syntax. Separate options are offered for
thumbnails.
|
|
This commit brings deeper changes to the image sizes concept. The goal
was to allow more flexible input in resizing vs. supplied files mixed
mode. Instead of hard <noresize> flags the decision whether to resize
or copy an image is now based on threshold. While not 100% universal,
it brings more control regarding image size bounds. Also brings a level
of tolerance for specific errors (off-by-one exports).
Image sizes' rules are a bit simpler, hopefully easier to understand.
A lot can be achieved by combination of thresholds.
|
|
All image sizes are now equal, no special treatment (except of
thumbnails).
|
|
This drops the legacy functionality that doesn't really fit into the
new flexible design concept and makes code unnecessarily complicated.
Most of these overrides affected only the "preview" image size anyway.
This also makes the <item src> attribute mandatory as it's being the only
source of metadata (unless overriden or supplied externally).
This unfortunately breaks the so-far 100% album XML files compatibility.
|
|
Useful to override previous camera owner name stored in EXIF.
|
|
|
|
This changes image size handling a little bit. An optional <fallback size="xxx" />
tag tells the generator to use different image size when an image for the current
image size has not been supplied from the album XML file.
This is effectively used for the legacy <nofullsize> tag fallback. More generally
this is useful for templates showing additional image sizes. Also saves space as
images not having the custom size supplied are not generated from the source image.
|
|
This commit brings full flexibility of custom image size definition and
usage. When a custom image size is defined, it automatically maps to the
album <item> tag arguments. Alternatively, this automatic name matching
can be overriden by <size tagname="..."> theme setup tags.
This allows us to supply image of different sizes that can be also used
in templates.
Legacy behaviour of "fullsize" and "preview" image size fallback is
retained (though not recommended in new theming setups).
|
|
|
|
As per rules defined in the sample default.xml setup file the whole
<picture> theme definiton block is not mandatory anymore. The rest
of the code plays nicely already.
|
|
This mode retains given aspect ratio and crops the area from inside of the
source image.
|
|
This commit makes use of a common function for all template parsing and page
writing. The behaviour is controlled by the "item" argument passed in. This
allows us to have a single code that generates code for list of items as well
as for a single item. In the future, this can be used for e.g. combining
thumbnails and large images on the same page.
Other than that this commit also brings several other changes:
- further clarification of theming setup XML file
- <protected_thumbnail> tag has been moved out of the <album> structure into
the <index> structure where it functionally belongs. Only whole albums can
be protected and the substitute thumbnail is displayed on index pages.
- position marker format has been broken out to a constant
- added few more FIXMEs to mark places that will change soon
- some template variables have been renamed
|
|
This change makes thumbnail image sizes more flexible by explicitly
stating the particular image size is a thumbnail. And each thumbnail
image size can have different squared settings.
On the theme side it's now mandatory to specify which thumbnail size
to use (if applicable). This allows us to have different thumbnail styles
for index and album pages.
This commit also removes the <squared_thumbnails> tag from setup.xml
file but retains fallback for ver. 1 setup.xml files.
|
|
Let's make it mandatory for now.
|
|
This is a new internal properties storage for attributes that can be
defined both in the item and album scope, with the item scope taking
priority.
The big advantage is a better distinguishment from an undefined, default
value. It also makes easier to retrieve attributes with properly defined
scope priorities.
|
|
To allow combined use of different cgg versions, user may provide
ver. 2 setup.xml file that takes priority over standard setup.xml
file.
This applies only to current working directory, not the files
placed in ~/.cgg or distributed as $PREFIX/share/cgg.
|
|
This commit makes setup files (setup.xml and referenced design
setup xml file) versioned and adds checks for correct versions.
If a newer versioned file is detected, warning is printed out
in assumption that a stray cgg version is used.
If the version information is missing or is lower than expected
version, files are read in legacy mode. Some values are left
on defaults and missing mandatory values are either read from
renamed keys or made up to suit current requirements.
This essentially brings back compatibility with old setup.xml
files that are usually part of galleries.
However, some values are hardcoded and should be kept in mind
to update and test the legacy mode along with future enhancements.
|
|
Some RAW editors like Adobe products like to include XMP data. Let's
strip them all off (unless disabled).
|
|
Turned off by default, this will copy all data from supplied external
EXIF metadata file back to all generated image files. All user overrides
are still applied on top of it.
Another reason for turning this off is file size concern, target image
files would carry a lot more information that may not be always needed and
would increase total amount of data transferred.
|
|
|
|
More and more we need to know local and public locations for various
features. Let's introduce general keys once and for all.
|
|
This comes with a cost of decoding full image when only getting image size.
|
|
|
|
|
|
This change allows greater flexibility for separate themes.
|
|
This is very basic scripting support - simple value retrieval and
block conditionals. Defines could be either static from theme setup
or programatically added during page generation.
|
|
|
|
This extends current templating system to another dimension,
bringing the possibility to have multiple themes generated
at once. The purpose is to be able to switch between multiple
designs, from PC to mobile, classic vs. flat view, slideshow, etc.
For the moment, only the classic theme is available.
Rules:
* for switching between themes, place a link inside your template
manually - it's not a cgg concern, only your theming infrastructure
* don't forget to define different file names for index and album
pages across different themes
* it's recommended to keep default theme named as "index.*" to avoid
showing directory listing on webserver
Notes:
* some TODOs will be fixed when we have new theme using these advanced
features (e.g. pictures in album pages)
* TODO: introduce tag/block conditional system, allow custom user
defines for each theme/page
* TODO: deprecate <show_go_up>, <show_exif_table> and <border style>
in favor of conditionals (these tags belong to theming)
|
|
This has a nice side effect of not having double slashes in paths anymore.
|
|
|
|
|
|
|
|
Disabled by default, only very simple center crop implemented.
The SQUARED_SIMPLE_SHAVE_AMOUNT constant may be slightly adjusted
according to future experience. It's a really dumb algorithm which
may not be suitable for every picture.
Looking for a fast and smart algorithm to determine image weight center
and radius, i.e. focus on object of interest. The OpenCV's face recognition
features are worth to test and consider, though I fear the speed issues.
|
|
|
|
|
|
Also print the setup file path in verbose mode.
|
|
|
|
|
|
|
|
|
|
|
|
Affects every generated HTML file (i.e. all of them would have .php extensions)
|
|
|
|
|
|
|
|
Template support files (CSS, images, scripts) are now a list instead of hardcoded single CSS and single script file
|
|
|
|
Dist sample source structure
- automake always deference symlinks, we need to find better way to handle the sample structure
|
|
|
|
|