Hoyt's FORK of DemoIccMAX 2.1.17.hoyt
Documentation for Hoyt's FORK of DemoIccMAX
Loading...
Searching...
No Matches
iccTiffDump.cpp File Reference
#include <stdio.h>
#include "IccCmm.h"
#include "IccUtil.h"
#include "IccDefs.h"
#include "IccProfLibVer.h"
#include "IccApplyBPC.h"
#include "TiffImg.h"
+ Include dependency graph for iccTiffDump.cpp:

Go to the source code of this file.

Classes

struct  IdList
 

Macros

#define UNKNOWNID   0xffffffff
 

Functions

const char * GetId (unsigned long nId, IdList *pIdList)
 
int main (int argc, icChar *argv[])
 
void Usage ()
 

Variables

IdList compression_types []
 
IdList photo_types []
 
IdList planar_types []
 

Macro Definition Documentation

◆ UNKNOWNID

#define UNKNOWNID   0xffffffff

Definition at line 85 of file iccTiffDump.cpp.

Referenced by GetId().

Function Documentation

◆ GetId()

const char * GetId ( unsigned long nId,
IdList * pIdList )

Definition at line 115 of file iccTiffDump.cpp.

116{
117 for (;pIdList->nId != nId && pIdList->nId != UNKNOWNID; pIdList++);
118
119 return pIdList->szName;
120}
#define UNKNOWNID
unsigned long nId
char const *const szName

References IdList::nId, IdList::szName, and UNKNOWNID.

Referenced by main().

+ Here is the caller graph for this function:

◆ main()

int main ( int argc,
icChar * argv[] )

Definition at line 132 of file iccTiffDump.cpp.

133{
134 int minargs = 1; // minimum number of arguments
135 if(argc<=minargs) {
136 Usage();
137 return -1;
138 }
139
140 CTiffImg SrcImg;
141
142 if (!SrcImg.Open(argv[1])) {
143 printf("\nFile [%s] cannot be opened.\n", argv[1]);
144 return false;
145 }
146
147 printf("-------------------->Tiff Image Dump<---------------------------\n");
148 printf("Filename: %s\n", argv[1]);
149 printf("Size: (%d x %d) pixels, (%.2lf\" x %.2lf\")\n",
150 SrcImg.GetWidth(), SrcImg.GetHeight(),
151 SrcImg.GetWidthIn(), SrcImg.GetHeightIn());
152 printf("Planar: %s\n", GetId(SrcImg.GetPlanar(), planar_types));
153 printf("BitsPerSample: %d\n", SrcImg.GetBitsPerSample());
154 printf("SamplesPerPixel: %d\n", SrcImg.GetSamples());
155 int nExtra = SrcImg.GetExtraSamples();
156 if (nExtra)
157 printf("ExtraSamples %d\n", nExtra);
158 printf("Photometric: %s\n", GetId(SrcImg.GetPhoto(), photo_types));
159 printf("BytesPerLine: %d\n", SrcImg.GetBytesPerLine());
160
161 printf("Resolution: (%lf x %lf) pixels per/inch\n", SrcImg.GetXRes(), SrcImg.GetYRes());
162 printf("Compression: %s\n", GetId(SrcImg.GetCompress(), compression_types));
163
164 unsigned char *pProfMem;
165 unsigned int nLen;
166 if (SrcImg.GetIccProfile(pProfMem, nLen)) {
167 printf("Profile: Embedded\n");
168
169 CIccProfile *pProfile = OpenIccProfile(pProfMem, nLen);
170
171 if (pProfile) {
172 icHeader *pHdr = &pProfile->m_Header;
173 CIccInfo Fmt;
174
175 if (pHdr->colorSpace)
176 printf(" Color Space: %s\n", Fmt.GetColorSpaceSigName(pHdr->colorSpace));
177 if (pHdr->pcs)
178 printf(" Colorimetric PCS: %s\n", Fmt.GetColorSpaceSigName(pHdr->pcs));
179 if (pHdr->spectralPCS) {
180 printf(" Spectral PCS: %s\n", Fmt.GetSpectralColorSigName(pHdr->spectralPCS));
181 if (pHdr->spectralRange.start || pHdr->spectralRange.end || pHdr->spectralRange.steps) {
182 printf(" Spectral Range: start=%.1fnm, end=%.1fnm, steps=%d\n",
185 pHdr->spectralRange.steps);
186 }
187 if (pHdr->biSpectralRange.start || pHdr->biSpectralRange.end || pHdr->biSpectralRange.steps) {
188 printf(" BiSpectral Range: start=%.1fnm, end=%.1fnm, steps=%d\n",
191 pHdr->biSpectralRange.steps);
192 }
193 }
194 CIccTag *pDesc = pProfile->FindTag(icSigProfileDescriptionTag);
195 if (pDesc->GetType()==icSigTextDescriptionType) {
197 printf(" Description: %s\n", pText->GetText());
198 }
199 else if (pDesc->GetType()==icSigMultiLocalizedUnicodeType) {
201 if (pStrs->m_Strings) {
202 CIccMultiLocalizedUnicode::iterator text = pStrs->m_Strings->begin();
203 if (text != pStrs->m_Strings->end()) {
204 std::string line;
205 text->GetText(line);
206 printf(" Description: %s\n", line.c_str());
207 }
208 }
209 }
210 }
211 }
212 else {
213 printf("Profile: Embedded\n");
214 }
215
216 SrcImg.Close();
217 return 0;
218}
CIccProfile * OpenIccProfile(const icChar *szFilename, bool bUseSubProfile)
Name: OpenIccProfile.
icFloatNumber icF16toF(icFloat16Number num)
Definition IccUtil.cpp:629
Type: Class.
Definition IccUtil.h:303
const icChar * GetSpectralColorSigName(icSpectralColorSignature sig)
Definition IccUtil.cpp:1769
const icChar * GetColorSpaceSigName(icColorSpaceSignature sig)
Definition IccUtil.cpp:1640
Class: CIccTag.
virtual icTagTypeSignature GetType() const
Function: GetType()
Class: CIccTagMultiLocalizedUnicode.
CIccMultiLocalizedUnicode * m_Strings
Class: CIccTagTextDescription()
const icChar * GetText() const
float GetYRes()
Definition TiffImg.h:110
bool Open(const char *szFname)
Definition TiffImg.cpp:228
void Close()
Definition TiffImg.cpp:104
unsigned int GetBitsPerSample()
Definition TiffImg.h:103
unsigned int GetWidth()
Definition TiffImg.h:99
unsigned int GetPlanar()
Definition TiffImg.h:108
double GetHeightIn()
Definition TiffImg.h:102
double GetWidthIn()
Definition TiffImg.h:101
float GetXRes()
Definition TiffImg.h:109
unsigned int GetPhoto()
Definition TiffImg.cpp:391
unsigned int GetSamples()
Definition TiffImg.h:105
unsigned int GetExtraSamples()
Definition TiffImg.h:106
unsigned int GetHeight()
Definition TiffImg.h:100
unsigned int GetBytesPerLine()
Definition TiffImg.h:112
bool GetIccProfile(unsigned char *&pProfile, unsigned int &nLen)
Definition TiffImg.cpp:410
unsigned int GetCompress()
Definition TiffImg.h:107
@ icSigMultiLocalizedUnicodeType
@ icSigTextDescriptionType
@ icSigProfileDescriptionTag
void Usage()
const char * GetId(unsigned long nId, IdList *pIdList)
IdList planar_types[]
IdList photo_types[]
IdList compression_types[]
The Profile header.
icSpectralRange spectralRange
icColorSpaceSignature colorSpace
icSpectralColorSignature spectralPCS
icSpectralRange biSpectralRange
icColorSpaceSignature pcs
icUInt16Number steps
icFloat16Number start
icFloat16Number end

References icHeader::biSpectralRange, CTiffImg::Close(), icHeader::colorSpace, compression_types, icSpectralRange::end, CTiffImg::GetBitsPerSample(), CTiffImg::GetBytesPerLine(), CIccInfo::GetColorSpaceSigName(), CTiffImg::GetCompress(), CTiffImg::GetExtraSamples(), CTiffImg::GetHeight(), CTiffImg::GetHeightIn(), CTiffImg::GetIccProfile(), GetId(), CTiffImg::GetPhoto(), CTiffImg::GetPlanar(), CTiffImg::GetSamples(), CIccInfo::GetSpectralColorSigName(), CIccTagTextDescription::GetText(), CIccTag::GetType(), CTiffImg::GetWidth(), CTiffImg::GetWidthIn(), CTiffImg::GetXRes(), CTiffImg::GetYRes(), icF16toF(), icSigMultiLocalizedUnicodeType, icSigProfileDescriptionTag, icSigTextDescriptionType, CIccTagMultiLocalizedUnicode::m_Strings, CTiffImg::Open(), OpenIccProfile(), icHeader::pcs, photo_types, planar_types, icHeader::spectralPCS, icHeader::spectralRange, icSpectralRange::start, icSpectralRange::steps, and Usage().

+ Here is the call graph for this function:

◆ Usage()

void Usage ( )

Definition at line 123 of file iccTiffDump.cpp.

124{
125 printf("iccTiffDump built with IccProfLib version " ICCPROFLIBVER "\n\n");
126
127 printf("Usage: iccTiffDump tiff_file {exported_icc_file}\n\n");
128}
#define ICCPROFLIBVER

References ICCPROFLIBVER.

Referenced by main().

+ Here is the caller graph for this function:

Variable Documentation

◆ compression_types

IdList compression_types[]
Initial value:
= {
{COMPRESSION_NONE, "None"},
{COMPRESSION_LZW, "LZW"},
{COMPRESSION_JPEG, "JPEG"},
{COMPRESSION_DEFLATE, "Deflate"},
{COMPRESSION_ADOBE_DEFLATE, "Deflate"},
{ 0xffffffff , "Unknown"},
}

Definition at line 105 of file iccTiffDump.cpp.

105 {
106 {COMPRESSION_NONE, "None"},
107 {COMPRESSION_LZW, "LZW"},
108 {COMPRESSION_JPEG, "JPEG"},
109 {COMPRESSION_DEFLATE, "Deflate"},
110 {COMPRESSION_ADOBE_DEFLATE, "Deflate"},
111
112 {UNKNOWNID, "Unknown"},
113};

Referenced by main().

◆ photo_types

IdList photo_types[]
Initial value:
= {
{PHOTO_MINISWHITE, "Min Is White"},
{PHOTO_MINISBLACK, "Min Is Black"},
{PHOTO_CIELAB, "CIELab"},
{PHOTO_ICCLAB, "IccLab"},
{ 0xffffffff , "Unknown"},
}
#define PHOTO_CIELAB
Definition TiffImg.h:80
#define PHOTO_MINISBLACK
Definition TiffImg.h:78
#define PHOTO_ICCLAB
Definition TiffImg.h:81
#define PHOTO_MINISWHITE
Definition TiffImg.h:79

Definition at line 96 of file iccTiffDump.cpp.

96 {
97 {PHOTO_MINISWHITE, "Min Is White"},
98 {PHOTO_MINISBLACK, "Min Is Black"},
99 {PHOTO_CIELAB, "CIELab"},
100 {PHOTO_ICCLAB, "IccLab"},
101
102 {UNKNOWNID, "Unknown"},
103};

Referenced by main().

◆ planar_types

IdList planar_types[]
Initial value:
= {
{0, "Interleaved samples"},
{PLANARCONFIG_CONTIG, "Interleaved samples"},
{PLANARCONFIG_SEPARATE, "Samples in separate planes"},
{ 0xffffffff , "Unknown"},
}

Definition at line 88 of file iccTiffDump.cpp.

88 {
89 {0, "Interleaved samples"},
90 {PLANARCONFIG_CONTIG, "Interleaved samples"},
91 {PLANARCONFIG_SEPARATE, "Samples in separate planes"},
92
93 {UNKNOWNID, "Unknown"},
94};

Referenced by main().