summaryrefslogtreecommitdiff
path: root/src/jpeg-utils.h
AgeCommit message (Collapse)AuthorFilesLines
2016-10-04items: Add option to shave image bordersTomas Bzatek1-0/+1
A workaround for badly exported images that contain some garbage at the borders. The amount specifies how many pixels should be shaved from all borders (i.e. amount of 2 results in 4x4 pixels loss). Applicable for particular items or whole album (<general> section) with the following syntax: <shave amount="1" />
2016-10-02Add support for HiDPI imagesTomas Bzatek1-0/+1
This works by creating corresponding hidpi image sizes on startup and letting the machinery generate high resolution images from the source images (no way to use supplied images). However since browsers expect exact image dimension multiples for the particular scale factor, a reference image size (scale factor 1.0x) must be read first, then cropped to match reference aspect ratio and resized to exact dimensions. That way pixel-perfect results can be achieved for the chosen scale factor. TODO: the CSS background-image: image-set() tags are not supported on Firefox. TODO: try the 1.5x scale factor
2016-10-02jpeg-utils: Add support for custom resize optionsTomas Bzatek1-1/+2
This change brings the possibility to tweak resize options using standard ImageMagick `convert` command syntax. Separate options are offered for thumbnails.
2016-09-18Introduce resizing thresholdsTomas Bzatek1-0/+1
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.
2016-04-03jpeg-utils: Override artist and owner nameTomas Bzatek1-0/+1
Useful to override previous camera owner name stored in EXIF.
2015-08-29jpeg-utils: Unify media libraries initializationTomas Bzatek1-0/+6
Both MagickWand and exiv2 needs some initialization and cleanup, move it to jpeg-utils for clean includes in cgg.c. Also add explicit exiv2 XMP initialization as stated on http://dev.exiv2.org/projects/exiv2/wiki/Thread_safety: "The XMP SDK initialization function is not mutex protected, thus Exiv2::XmpParser::initialize is not thread-safe. Therefore, multi-threaded applications need to ensure that this XMP function is serialized, e.g., by calling them from an initialization section which is run before any threads are started." See also https://bugs.kde.org/show_bug.cgi?id=166424
2015-01-04Introduce new "fixed" thumbnail crop modeTomas Bzatek1-2/+2
This mode retains given aspect ratio and crops the area from inside of the source image.
2014-09-15theming: Allow themes to use different thumbnail image sizesTomas Bzatek1-1/+1
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.
2014-03-18Use "override" terminology instead of "fake"Tomas Bzatek1-3/+3
This is a file format break within development branch.
2014-03-18Add support for specifying custom focal length and apertureTomas Bzatek1-0/+2
Similar to using supplied timestamps this is useful for fully manual lenses that don't provide any information to the camera.
2013-04-07Add ability to specify thumbnail square crop hintTomas Bzatek1-2/+5
In simple crop square mode it's sometimes viable to specify position of the square. This is vastly useful for portrait pictures so that you don't crop the head off the body.
2013-04-07Set squared thumbnail crop amount to 0Tomas Bzatek1-1/+1
The 5 percent value (from each side) wasn't really doing any good... Let me know if you actually liked it.
2013-03-16Strip XMP metadata by defaultTomas Bzatek1-1/+1
Some RAW editors like Adobe products like to include XMP data. Let's strip them all off (unless disabled).
2013-03-16Add support for writing external EXIF metadata back to imagesTomas Bzatek1-0/+1
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.
2013-03-10Add support for specifying custom dateTomas Bzatek1-0/+1
This essentially means faking the datetime, e.g. when you want to mask original picture date. This commit also changes little bit of datetime conversion, hopefully fixing DST issues. Needs more testing.
2013-03-10Add support for datetime/timezone shiftTomas Bzatek1-3/+11
Simple datetime shift, including EXIF data modification.
2012-12-27Add support for EXIF Canon Camera temperatureTomas Bzatek1-0/+1
For the moment we're using Exif.CanonSi.0x000c key from Exiv2 namespace since it's an unknown tag to it. This may need little tweaking in the future when proper naming becomes upstream.
2012-04-15Add HAS_EXIF defineTomas Bzatek1-0/+5
This brings a new HAS_EXIF define which is present when EXIF information are available. Templates have been modified to inform user when not available. The test for EXIF metadata presence is fairly basic, we only look for aperture, focal length and exposure time attributes. This might be a subject to change in the future.
2012-04-15Change EXIF metadata handling into a registered functionTomas Bzatek1-30/+28
This allows much greater flexibility from templates regarding EXIF metadata handling, no more hardcoded symbols. It's possible to display essentially any attribute known to Exiv2. Please see http://exiv2.org/metadata.html This brings two new functions that can be called from templates: * get_exif_value (exiv2_attribute) * get_exif_value_fixed (exiv2_attribute) Both functions take a string argument of metadata attribute name from Exiv2 namespace. The difference is that get_exif_value_fixed() does some extra formatting for several basic attributes (e.g. datetime format).
2011-06-04Autorotate images according to EXIF Orientation infoTomas Bzatek1-2/+4
This comes with a cost of decoding full image when only getting image size.
2010-12-12Cleanup header definesTomas Bzatek1-7/+8
2010-12-12jpeg-utils: Function data cleanupTomas Bzatek1-1/+1
2010-10-30Don't resize an image if it fits in desired sizeTomas Bzatek1-1/+1
2010-10-09Add support for squared thumbnailsTomas Bzatek1-1/+5
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.
2009-05-10Consolidate data typesTomas Bzatek1-30/+30
2009-02-26AutotoolizeTomas Bzatek1-0/+94