diff options
author | Marti Maria <info@littlecms.com> | 2010-07-26 16:10:45 +0200 |
---|---|---|
committer | Marti Maria <info@littlecms.com> | 2010-07-26 16:10:45 +0200 |
commit | a80a1ec9dc9e84135ad60ed0b18799eccc74b936 (patch) | |
tree | 5fada3506419e7376e647f5d9fa4d10e90c92e35 | |
parent | 366933f15f68e0128360111f654eeecb5e4ad0b5 (diff) | |
download | lcms2-a80a1ec9dc9e84135ad60ed0b18799eccc74b936.tar.gz |
Fixed a bug in floating point formats
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | utils/tificc/tificc.c | 10 |
2 files changed, 8 insertions, 3 deletions
@@ -12,3 +12,4 @@ Fixed VC2010, VC2008 projects Added cmsTagLinkedTo Fixed some typos in error messages Peliminary Delphi wrapper +Fixed a bug in tificc in floating point formats
\ No newline at end of file diff --git a/utils/tificc/tificc.c b/utils/tificc/tificc.c index 4d972b1..ec23d16 100644 --- a/utils/tificc/tificc.c +++ b/utils/tificc/tificc.c @@ -198,7 +198,7 @@ cmsUInt32Number GetInputPixelType(TIFF *Bank) { uint16 Photometric, bps, spp, extra, PlanarConfig, *info; uint16 Compression, reverse = 0; - int ColorChannels, IsPlanar = 0, pt = 0; + int ColorChannels, IsPlanar = 0, pt = 0, IsFlt; TIFFGetField(Bank, TIFFTAG_PHOTOMETRIC, &Photometric); TIFFGetFieldDefaulted(Bank, TIFFTAG_BITSPERSAMPLE, &bps); @@ -304,8 +304,9 @@ cmsUInt32Number GetInputPixelType(TIFF *Bank) // Convert bits per sample to bytes per sample bps >>= 3; + IsFlt = (bps == 0) || (bps == 4); - return (COLORSPACE_SH(pt)|PLANAR_SH(IsPlanar)|EXTRA_SH(extra)|CHANNELS_SH(ColorChannels)|BYTES_SH(bps)|FLAVOR_SH(reverse)); + return (FLOAT_SH(IsFlt)|COLORSPACE_SH(pt)|PLANAR_SH(IsPlanar)|EXTRA_SH(extra)|CHANNELS_SH(ColorChannels)|BYTES_SH(bps)|FLAVOR_SH(reverse)); } @@ -316,8 +317,9 @@ cmsUInt32Number ComputeOutputFormatDescriptor(cmsUInt32Number dwInput, int OutCo { int IsPlanar = T_PLANAR(dwInput); int Channels = ChanCountFromPixelType(OutColorSpace); + int IsFlt = (bps == 0) || (bps == 4); - return (COLORSPACE_SH(OutColorSpace)|PLANAR_SH(IsPlanar)|CHANNELS_SH(Channels)|BYTES_SH(bps)); + return (FLOAT_SH(IsFlt)|COLORSPACE_SH(OutColorSpace)|PLANAR_SH(IsPlanar)|CHANNELS_SH(Channels)|BYTES_SH(bps)); } @@ -829,6 +831,8 @@ int TransformImage(TIFF* in, TIFF* out, const char *cDefInpProf) if (hProof) cmsCloseProfile(hProof); + if (xform == NULL) return 0; + // Planar stuff if (T_PLANAR(wInput)) nPlanes = T_CHANNELS(wInput) + T_EXTRA(wInput); |