(gdt's judgement is that anyone paying attention to color management
will surely have jpeg and tiff libraries installed anyway, so this
isn't bloat. If it is thought to be bloat, a better fix is to
PKG_OPTIONS other programs to refrain from using lcms.)
New features
Black preservation on CMYK-> CMYK transforms
Ability to set adaptation state of observer on absolute colorimetric transforms.
A rather advanced feature. Actually it only allows No adaptation (d=0) and observer fully adapted (d=1)
lcms can now "fix" some broken 8-bit profiles that have gray axes misplaced.
icctrans can now read CGATS/IT8 files.
improved tifficc with tiff Lab8 support
New functions
LCMSAPI double LCMSEXPORT cmsSetAdaptationState(cmsHTRANSFORM hTransform, double d);
LCMSAPI void LCMSEXPORT cmsSetHeaderAttributes(cmsHPROFILE hProfile, DWORD Flags);
LCMSAPI DWORD LCMSEXPORT cmsTakeHeaderAttributes(cmsHPROFILE hProfile);
LCMSAPI icInt32Number LCMSEXPORT cmsGetTagCount(cmsHPROFILE hProfile);
LCMSAPI icTagSignature LCMSEXPORT cmsGetTagSignature(cmsHPROFILE hProfile, icInt32Number n);
LCMSAPI BOOL LCMSEXPORT cmsIT8SaveToMem(LCMSHANDLE hIT8, void *MemPtr, size_t* BytesNeeded);
BOOL _cmsIsMatrixShaper(cmsHPROFILE hProfile);
BOOL _cmsAddDateTimeTag(cmsHPROFILE hProfile, icTagSignature sig, struct tm *DateTime);
BOOL _cmsAddColorantTableTag(cmsHPROFILE hProfile, icTagSignature sig, LPcmsNAMEDCOLORLIST nc);
double cmsEvalLUTreverse(LPLUT Lut, WORD Target[], WORD Result[], LPWORD Hint);
LPcmsNAMEDCOLORLIST LCMSEXPORT cmsReadColorantTable(cmsHPROFILE hProfile, icTagSignature sig)
LPcmsGAMUTEX cmsReadExtendedGamut(cmsHPROFILE hProfile, int index);
void cmsFreeExtendedGamut(LPcmsGAMUTEX gex);
New tags supported
icSigColorantTableTag LPcmsNAMEDCOLORLIST
icSigColorantTableOutTag LPcmsNAMEDCOLORLIST
icSigCalibrationDateTimeTag const struct tm*
New flags:
cmsFLAGS_PRESERVEBLACK
cmsFLAGS_GRIDPOINTS(n)
And of course some bug fixing.
* linux & windows packages are now joined into a single package.
* Improved (and now fast!) gamut checking.
* New virtual NULL profile for building gamut check transforms.
* CGATS.13/IT8 parser now supports multiple tables and other goodies like
specifying flot format.
* More python support.
* New Matlab wrapper
* Revamped icctrans
* Improved jpegicc
* jpegicc and tifficc now can save (grab) embedded profiles.
* tifficc now supports up to 15 channels.
* Improved Lab prelinearization.
* Fixed absolute intent on PostScript CRD
* Man pages for utilities.
* Access to creation & calibration date time.
* Lots of bug fixes
Changes:
Overall speedup
Full ICC v4 support
New CGATS.13/IT8 parser
8-bit transforms optimization
Improved named color -- lcms can now write such profiles as well
lcms can now write 8 bit profiles as well as 16 bit
softproof now honors proofing intent
Absolute colorimetric works fine on mixed v2/v4 transforms
Improved black point compensation
Several new utility functions
Black point compensation on PostScript CRD
Added support for HiFi (> 4 inks) on tifficc
Improved icclink
Add lcms.pc pkg-config file
(http://www.freedesktop.org/Software/pkgconfig).
USE_TETRAHEDRAL and USE_TRILINEAR no longer used -- engine now
chooses between interpolation methods
on depending on several heuristics.
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
Package changes:
The include files moved from $PREFIX/include/lcms to
$PREFIX/include. Support added to buildlink*.mk to provide
compatibility symlinks include/lcms/*.h in BUILDLINK_DIR.
No list of changes since the previously packaged version (1.06), I do not
even know if there was any versions in between... Anyway changes
in version 1.12 are (from the homepage):
- Brightness/Contrast/Hue/Saturation/WhitePoint modification across abstract
profile
- License changed to MIT
- pseq tag handling: cmsReadProfileSequenceDescription and cmsSEQ,
cmsPSEQDESC structures
- CRD generation now supports black point compensation, see
cmsGetPostScriptCRDEx
- cmsTakeManufacturer and cmsTakeModel for uncooked info on these tags
- Writing 8 bit profiles is now supported
- Named color profiles support. This turns lcms from a "wide subset" into
a "full implementation" of ICC 3.4, with some ICC 4.0 support.
- PostScript CSA, CRD generation
- Ink-Limiting capabilities for CMYK
- Devicelink profile generation.
- Gray scale virtual profiles
- Linearization virtual device link profiles
- New ICCLINK and ICC2PS utilities
- SWIG wrapper. This enables lcms from Python.
- Floating-point formats are now accepted as well.
- More ICC 4.0 compatibility. Some 4.0 profiles are now are fully understood
(still experimental)
- Profiles can now be saved to memory (thanks to Steven Greaves for providing
the code)
- Char Target data are now handled. Some profiles does store the data
profiler has used. This is all information needed to rebuild the profile
from scratch.
- New low-resolution flag cmsFLAGS_LOWRESPRECALC to save memory.
- User-defined encodings are now supported.
- cmsChangeBuffersFormat() to change the encoding of buffers on runtime
allows reuse of existing transforms.
- Gamma estimation routines cmsEstimateGamma() and cmsEstimateGammaEx()
- multilocalized unicode is now supported. Language and codepage is
selected via cmsSetLanguage() (ICC 4.0 only)
- LUT handling has been enhanced with enumerators. (SAMPLER_INSPECT)
- Improved TIFFICC, JPEGICC and ICCTRANS utilities.
- cmsOpenProfileFromMem() no longer creates temporary files.
- Transforms does accept now a maximum of 8 channels on input and 16 on
output. (last version did accept 6 on input)
- 8 <-> 16 bits per sample are now always computed accurately.
- Some minor bugs fixed
${SHAREOWN}:${SHAREGRP}, and then copy the files to ${PREFIX} - this
prevents an ordinary user from deleting the files under ${WRKSRC}.
Instead, copy the files into ${PREFIX} first, then change their ownership.
buildlink2.mk files back into the main trunk. This provides sufficient
buildlink2 infrastructure to start merging other packages from the
buildlink2 branch that have already been converted to use the buildlink2
framework.