| Index: core/fpdfapi/fpdf_page/fpdf_page_colors.cpp
|
| diff --git a/core/fpdfapi/fpdf_page/fpdf_page_colors.cpp b/core/fpdfapi/fpdf_page/fpdf_page_colors.cpp
|
| deleted file mode 100644
|
| index 472e8751d7f31a5fa7b8ee7eab82fda6f526f3a9..0000000000000000000000000000000000000000
|
| --- a/core/fpdfapi/fpdf_page/fpdf_page_colors.cpp
|
| +++ /dev/null
|
| @@ -1,235 +0,0 @@
|
| -// Copyright 2014 PDFium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
| -
|
| -#include "core/fpdfapi/fpdf_page/pageint.h"
|
| -
|
| -#include <limits.h>
|
| -
|
| -#include <algorithm>
|
| -
|
| -#include "core/fpdfapi/cpdf_modulemgr.h"
|
| -#include "core/fpdfapi/fpdf_parser/cpdf_array.h"
|
| -#include "core/fpdfapi/fpdf_parser/cpdf_dictionary.h"
|
| -#include "core/fpdfapi/fpdf_parser/cpdf_document.h"
|
| -#include "core/fpdfapi/fpdf_parser/cpdf_stream.h"
|
| -#include "core/fpdfapi/fpdf_parser/cpdf_stream_acc.h"
|
| -#include "core/fpdfapi/fpdf_parser/cpdf_string.h"
|
| -#include "core/fxcodec/fx_codec.h"
|
| -
|
| -namespace {
|
| -
|
| -uint32_t ComponentsForFamily(int family) {
|
| - if (family == PDFCS_DEVICERGB)
|
| - return 3;
|
| - if (family == PDFCS_DEVICEGRAY)
|
| - return 1;
|
| - return 4;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -void sRGB_to_AdobeCMYK(FX_FLOAT R,
|
| - FX_FLOAT G,
|
| - FX_FLOAT B,
|
| - FX_FLOAT& c,
|
| - FX_FLOAT& m,
|
| - FX_FLOAT& y,
|
| - FX_FLOAT& k) {
|
| - c = 1.0f - R;
|
| - m = 1.0f - G;
|
| - y = 1.0f - B;
|
| - k = c;
|
| - if (m < k) {
|
| - k = m;
|
| - }
|
| - if (y < k) {
|
| - k = y;
|
| - }
|
| -}
|
| -
|
| -void ReverseRGB(uint8_t* pDestBuf, const uint8_t* pSrcBuf, int pixels) {
|
| - if (pDestBuf == pSrcBuf) {
|
| - for (int i = 0; i < pixels; i++) {
|
| - uint8_t temp = pDestBuf[2];
|
| - pDestBuf[2] = pDestBuf[0];
|
| - pDestBuf[0] = temp;
|
| - pDestBuf += 3;
|
| - }
|
| - } else {
|
| - for (int i = 0; i < pixels; i++) {
|
| - *pDestBuf++ = pSrcBuf[2];
|
| - *pDestBuf++ = pSrcBuf[1];
|
| - *pDestBuf++ = pSrcBuf[0];
|
| - pSrcBuf += 3;
|
| - }
|
| - }
|
| -}
|
| -
|
| -CPDF_DeviceCS::CPDF_DeviceCS(CPDF_Document* pDoc, int family)
|
| - : CPDF_ColorSpace(pDoc, family, ComponentsForFamily(family)) {}
|
| -
|
| -FX_BOOL CPDF_DeviceCS::GetRGB(FX_FLOAT* pBuf,
|
| - FX_FLOAT& R,
|
| - FX_FLOAT& G,
|
| - FX_FLOAT& B) const {
|
| - if (m_Family == PDFCS_DEVICERGB) {
|
| - R = pBuf[0];
|
| - if (R < 0) {
|
| - R = 0;
|
| - } else if (R > 1) {
|
| - R = 1;
|
| - }
|
| - G = pBuf[1];
|
| - if (G < 0) {
|
| - G = 0;
|
| - } else if (G > 1) {
|
| - G = 1;
|
| - }
|
| - B = pBuf[2];
|
| - if (B < 0) {
|
| - B = 0;
|
| - } else if (B > 1) {
|
| - B = 1;
|
| - }
|
| - } else if (m_Family == PDFCS_DEVICEGRAY) {
|
| - R = *pBuf;
|
| - if (R < 0) {
|
| - R = 0;
|
| - } else if (R > 1) {
|
| - R = 1;
|
| - }
|
| - G = B = R;
|
| - } else if (m_Family == PDFCS_DEVICECMYK) {
|
| - if (!m_dwStdConversion) {
|
| - AdobeCMYK_to_sRGB(pBuf[0], pBuf[1], pBuf[2], pBuf[3], R, G, B);
|
| - } else {
|
| - FX_FLOAT k = pBuf[3];
|
| - R = 1.0f - std::min(1.0f, pBuf[0] + k);
|
| - G = 1.0f - std::min(1.0f, pBuf[1] + k);
|
| - B = 1.0f - std::min(1.0f, pBuf[2] + k);
|
| - }
|
| - } else {
|
| - ASSERT(m_Family == PDFCS_PATTERN);
|
| - R = G = B = 0;
|
| - return FALSE;
|
| - }
|
| - return TRUE;
|
| -}
|
| -FX_BOOL CPDF_DeviceCS::v_GetCMYK(FX_FLOAT* pBuf,
|
| - FX_FLOAT& c,
|
| - FX_FLOAT& m,
|
| - FX_FLOAT& y,
|
| - FX_FLOAT& k) const {
|
| - if (m_Family != PDFCS_DEVICECMYK) {
|
| - return FALSE;
|
| - }
|
| - c = pBuf[0];
|
| - m = pBuf[1];
|
| - y = pBuf[2];
|
| - k = pBuf[3];
|
| - 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;
|
| - }
|
| - if (m_Family == PDFCS_DEVICEGRAY) {
|
| - if (R == G && R == B) {
|
| - *pBuf = R;
|
| - return TRUE;
|
| - }
|
| - return FALSE;
|
| - }
|
| - if (m_Family == PDFCS_DEVICECMYK) {
|
| - sRGB_to_AdobeCMYK(R, G, B, pBuf[0], pBuf[1], pBuf[2], pBuf[3]);
|
| - return TRUE;
|
| - }
|
| - return FALSE;
|
| -}
|
| -FX_BOOL CPDF_DeviceCS::v_SetCMYK(FX_FLOAT* pBuf,
|
| - FX_FLOAT c,
|
| - FX_FLOAT m,
|
| - FX_FLOAT y,
|
| - FX_FLOAT k) const {
|
| - if (m_Family == PDFCS_DEVICERGB) {
|
| - AdobeCMYK_to_sRGB(c, m, y, k, pBuf[0], pBuf[1], pBuf[2]);
|
| - return TRUE;
|
| - }
|
| - if (m_Family == PDFCS_DEVICECMYK) {
|
| - pBuf[0] = c;
|
| - pBuf[1] = m;
|
| - pBuf[2] = y;
|
| - pBuf[3] = k;
|
| - return TRUE;
|
| - }
|
| - return FALSE;
|
| -}
|
| -
|
| -void CPDF_DeviceCS::TranslateImageLine(uint8_t* pDestBuf,
|
| - const uint8_t* pSrcBuf,
|
| - int pixels,
|
| - int image_width,
|
| - int image_height,
|
| - FX_BOOL bTransMask) const {
|
| - if (bTransMask && m_Family == PDFCS_DEVICECMYK) {
|
| - for (int i = 0; i < pixels; i++) {
|
| - int k = 255 - pSrcBuf[3];
|
| - pDestBuf[0] = ((255 - pSrcBuf[0]) * k) / 255;
|
| - pDestBuf[1] = ((255 - pSrcBuf[1]) * k) / 255;
|
| - pDestBuf[2] = ((255 - pSrcBuf[2]) * k) / 255;
|
| - pDestBuf += 3;
|
| - pSrcBuf += 4;
|
| - }
|
| - return;
|
| - }
|
| - if (m_Family == PDFCS_DEVICERGB) {
|
| - ReverseRGB(pDestBuf, pSrcBuf, pixels);
|
| - } else if (m_Family == PDFCS_DEVICEGRAY) {
|
| - for (int i = 0; i < pixels; i++) {
|
| - *pDestBuf++ = pSrcBuf[i];
|
| - *pDestBuf++ = pSrcBuf[i];
|
| - *pDestBuf++ = pSrcBuf[i];
|
| - }
|
| - } else {
|
| - for (int i = 0; i < pixels; i++) {
|
| - if (!m_dwStdConversion) {
|
| - AdobeCMYK_to_sRGB1(pSrcBuf[0], pSrcBuf[1], pSrcBuf[2], pSrcBuf[3],
|
| - pDestBuf[2], pDestBuf[1], pDestBuf[0]);
|
| - } else {
|
| - uint8_t k = pSrcBuf[3];
|
| - pDestBuf[2] = 255 - std::min(255, pSrcBuf[0] + k);
|
| - pDestBuf[1] = 255 - std::min(255, pSrcBuf[1] + k);
|
| - pDestBuf[0] = 255 - std::min(255, pSrcBuf[2] + k);
|
| - }
|
| - pSrcBuf += 4;
|
| - pDestBuf += 3;
|
| - }
|
| - }
|
| -}
|
| -
|
| -CPDF_IccProfile::CPDF_IccProfile(const uint8_t* pData, uint32_t dwSize)
|
| - : m_bsRGB(FALSE), m_pTransform(nullptr), m_nSrcComponents(0) {
|
| - if (dwSize == 3144 &&
|
| - FXSYS_memcmp(pData + 0x190, "sRGB IEC61966-2.1", 17) == 0) {
|
| - m_bsRGB = TRUE;
|
| - m_nSrcComponents = 3;
|
| - } else if (CPDF_ModuleMgr::Get()->GetIccModule()) {
|
| - m_pTransform = CPDF_ModuleMgr::Get()->GetIccModule()->CreateTransform_sRGB(
|
| - pData, dwSize, m_nSrcComponents);
|
| - }
|
| -}
|
| -CPDF_IccProfile::~CPDF_IccProfile() {
|
| - if (m_pTransform) {
|
| - CPDF_ModuleMgr::Get()->GetIccModule()->DestroyTransform(m_pTransform);
|
| - }
|
| -}
|
| -
|
|
|