FX_BOOL CPDFSDK_BAAnnot::GetColor(FX_COLORREF& color) const { if (CPDF_Array* pEntry = m_pAnnot->GetAnnotDict()->GetArrayBy("C")) { int nCount = pEntry->GetCount(); if (nCount == 1) { FX_FLOAT g = pEntry->GetNumberAt(0) * 255; color = FXSYS_RGB((int)g, (int)g, (int)g); return TRUE; } else if (nCount == 3) { FX_FLOAT r = pEntry->GetNumberAt(0) * 255; FX_FLOAT g = pEntry->GetNumberAt(1) * 255; FX_FLOAT b = pEntry->GetNumberAt(2) * 255; color = FXSYS_RGB((int)r, (int)g, (int)b); return TRUE; } else if (nCount == 4) { FX_FLOAT c = pEntry->GetNumberAt(0); FX_FLOAT m = pEntry->GetNumberAt(1); FX_FLOAT y = pEntry->GetNumberAt(2); FX_FLOAT k = pEntry->GetNumberAt(3); FX_FLOAT r = 1.0f - std::min(1.0f, c + k); FX_FLOAT g = 1.0f - std::min(1.0f, m + k); FX_FLOAT b = 1.0f - std::min(1.0f, y + k); color = FXSYS_RGB((int)(r * 255), (int)(g * 255), (int)(b * 255)); return TRUE; } } return FALSE; }
FX_DWORD CPDF_Bookmark::GetColorRef() const { if (!m_pDict) { return 0; } CPDF_Array* pColor = m_pDict->GetArray("C"); if (!pColor) { return FXSYS_RGB(0, 0, 0); } int r = FXSYS_round(pColor->GetNumber(0) * 255); int g = FXSYS_round(pColor->GetNumber(1) * 255); int b = FXSYS_round(pColor->GetNumber(2) * 255); return FXSYS_RGB(r, g, b); }
FX_COLORREF CPDFSDK_InterForm::GetHighlightColor(int nFieldType) { if (nFieldType < 0 || nFieldType > kNumFieldTypes) return FXSYS_RGB(255, 255, 255); if (nFieldType == 0) return m_aHighlightColor[0]; return m_aHighlightColor[nFieldType - 1]; }
FX_BOOL CPDFSDK_Annot::GetColor(FX_COLORREF& color) const { ASSERT(m_pAnnot != NULL); ASSERT(m_pAnnot->m_pAnnotDict != NULL); if (CPDF_Array* pEntry = m_pAnnot->m_pAnnotDict->GetArray("C")) { int nCount = pEntry->GetCount(); if (nCount == 1) { FX_FLOAT g = pEntry->GetNumber(0) * 255; color = FXSYS_RGB((int)g, (int)g, (int)g); return TRUE; } else if (nCount == 3) { FX_FLOAT r = pEntry->GetNumber(0) * 255; FX_FLOAT g = pEntry->GetNumber(1) * 255; FX_FLOAT b = pEntry->GetNumber(2) * 255; color = FXSYS_RGB((int)r, (int)g, (int)b); return TRUE; } else if (nCount == 4) { FX_FLOAT c = pEntry->GetNumber(0); FX_FLOAT m = pEntry->GetNumber(1); FX_FLOAT y = pEntry->GetNumber(2); FX_FLOAT k = pEntry->GetNumber(3); FX_FLOAT r = 1.0f - FX_MIN(1.0f, c + k); FX_FLOAT g = 1.0f - FX_MIN(1.0f, m + k); FX_FLOAT b = 1.0f - FX_MIN(1.0f, y + k); color = FXSYS_RGB((int)(r * 255), (int)(g * 255), (int)(b * 255)); return TRUE; } } return FALSE; }
FX_COLORREF CPDF_TransferFunc::TranslateColor(FX_COLORREF rgb) const { return FXSYS_RGB(m_Samples[FXSYS_GetRValue(rgb)], m_Samples[256 + FXSYS_GetGValue(rgb)], m_Samples[512 + FXSYS_GetBValue(rgb)]); }