void* TIFFOutput::convert_to_cmyk (int npixels, const void* data) { std::vector<unsigned char> cmyk (m_outputchans * spec().format.size() * npixels); if (spec().format == TypeDesc::UINT8) { rgb_to_cmyk (npixels, (unsigned char *)data, m_spec.nchannels, (unsigned char *)&cmyk[0], m_outputchans); } else if (spec().format == TypeDesc::UINT16) { rgb_to_cmyk (npixels, (unsigned short *)data, m_spec.nchannels, (unsigned short *)&cmyk[0], m_outputchans); } else { ASSERT (0 && "CMYK should be forced to UINT8 or UINT16"); } m_scratch.swap (cmyk); return &m_scratch[0]; }
int main() { double a,b,c,d; char s[99]; for(; ~(scanf("%s",s));) { if(*s=='(') { sscanf(s,"(%lf,%lf,%lf,%lf)",&a,&b,&c,&d); cmyk(a,b,c,d); } else if(s[2]=='L') { sscanf(s,"HSL(%lf,%lf,%lf)",&a,&b,&c); hsl(a,b/100,c/100); } else if(s[2]=='V') { sscanf(s,"HSV(%lf,%lf,%lf)",&a,&b,&c); hsv(a,b/100,c/100); } else { hex(s); } } return 0; }