FX_BOOL CPDF_ColorSpace::GetCMYK(FX_FLOAT* pBuf, FX_FLOAT& c, FX_FLOAT& m, FX_FLOAT& y, FX_FLOAT& k) const { if (v_GetCMYK(pBuf, c, m, y, k)) { return TRUE; } FX_FLOAT R, G, B; if (!GetRGB(pBuf, R, G, B)) { return FALSE; } sRGB_to_AdobeCMYK(R, G, B, c, m, y, k); return TRUE; }
FX_BOOL CPDF_DeviceCS::SetRGB(FX_FLOAT* pBuf, FX_FLOAT R, FX_FLOAT G, FX_FLOAT B) const { if (m_Family == PDFCS_DEVICERGB) { pBuf[0] = R; pBuf[1] = G; pBuf[2] = B; return TRUE; } else if (m_Family == PDFCS_DEVICEGRAY) { if (R == G && R == B) { *pBuf = R; return TRUE; } else { return FALSE; } } else if (m_Family == PDFCS_DEVICECMYK) { sRGB_to_AdobeCMYK(R, G, B, pBuf[0], pBuf[1], pBuf[2], pBuf[3]); return TRUE; } return FALSE; }