FX_ARGB CPDF_RenderOptions::TranslateColor(FX_ARGB argb) const { if (m_ColorMode == RENDER_COLOR_NORMAL) { return argb; } if (m_ColorMode == RENDER_COLOR_ALPHA) { return argb; } int a, r, g, b; ArgbDecode(argb, a, r, g, b); int gray = FXRGB2GRAY(r, g, b); if (m_ColorMode == RENDER_COLOR_TWOCOLOR) { int color = (r - gray) * (r - gray) + (g - gray) * (g - gray) + (b - gray) * (b - gray); if (gray < 35 && color < 20) { return ArgbEncode(a, m_ForeColor); } if (gray > 221 && color < 20) { return ArgbEncode(a, m_BackColor); } return argb; } int fr = FXSYS_GetRValue(m_ForeColor); int fg = FXSYS_GetGValue(m_ForeColor); int fb = FXSYS_GetBValue(m_ForeColor); int br = FXSYS_GetRValue(m_BackColor); int bg = FXSYS_GetGValue(m_BackColor); int bb = FXSYS_GetBValue(m_BackColor); r = (br - fr) * gray / 255 + fr; g = (bg - fg) * gray / 255 + fg; b = (bb - fb) * gray / 255 + fb; return ArgbEncode(a, r, g, b); }
void CPDFSDK_BAAnnot::SetColor(FX_COLORREF color) { CPDF_Array* pArray = new CPDF_Array; pArray->AddNumber((FX_FLOAT)FXSYS_GetRValue(color) / 255.0f); pArray->AddNumber((FX_FLOAT)FXSYS_GetGValue(color) / 255.0f); pArray->AddNumber((FX_FLOAT)FXSYS_GetBValue(color) / 255.0f); m_pAnnot->GetAnnotDict()->SetAt("C", pArray); }
void CPDFSDK_Annot::SetColor(FX_COLORREF color) { ASSERT(m_pAnnot != NULL); ASSERT(m_pAnnot->m_pAnnotDict != NULL); CPDF_Array* pArray = FX_NEW CPDF_Array; pArray->AddNumber((FX_FLOAT)FXSYS_GetRValue(color) / 255.0f); pArray->AddNumber((FX_FLOAT)FXSYS_GetGValue(color) / 255.0f); pArray->AddNumber((FX_FLOAT)FXSYS_GetBValue(color) / 255.0f); m_pAnnot->m_pAnnotDict->SetAt("C", pArray); }
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)]); }