diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2017-05-25 14:04:59 -0400 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-05-25 18:17:31 +0000 |
commit | 5acacd361b15b82a8b30cdd5cb92abb8a2104ecf (patch) | |
tree | f602c78b802f67f41ea2099f8c7051a324060162 /core/fpdfapi/page/cpdf_iccprofile.cpp | |
parent | e0e2cd4f8a5634f2878f9b3bf3ce321ffd53a980 (diff) | |
download | pdfium-5acacd361b15b82a8b30cdd5cb92abb8a2104ecf.tar.xz |
Break apart the pageint.h file.
This CL separates pageint.h and the supporting cpp files into indivudal
class files.
Change-Id: Idcadce41976a8cd5f0d916e6a5ebbc283fd36527
Reviewed-on: https://pdfium-review.googlesource.com/5930
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core/fpdfapi/page/cpdf_iccprofile.cpp')
-rw-r--r-- | core/fpdfapi/page/cpdf_iccprofile.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/core/fpdfapi/page/cpdf_iccprofile.cpp b/core/fpdfapi/page/cpdf_iccprofile.cpp new file mode 100644 index 0000000000..afb505a7e6 --- /dev/null +++ b/core/fpdfapi/page/cpdf_iccprofile.cpp @@ -0,0 +1,40 @@ +// Copyright 2017 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/page/cpdf_iccprofile.h" + +#include "core/fpdfapi/cpdf_modulemgr.h" +#include "core/fpdfapi/parser/cpdf_stream.h" +#include "core/fxcodec/codec/ccodec_iccmodule.h" + +namespace { + +bool DetectSRGB(const uint8_t* pData, uint32_t dwSize) { + return dwSize == 3144 && memcmp(pData + 0x190, "sRGB IEC61966-2.1", 17) == 0; +} + +} // namespace + +CPDF_IccProfile::CPDF_IccProfile(CPDF_Stream* pStream, + const uint8_t* pData, + uint32_t dwSize) + : m_bsRGB(DetectSRGB(pData, dwSize)), m_pStream(pStream) { + if (m_bsRGB) { + m_nSrcComponents = 3; + return; + } + + uint32_t nSrcComps = 0; + auto* pIccModule = CPDF_ModuleMgr::Get()->GetIccModule(); + m_pTransform = pIccModule->CreateTransform_sRGB(pData, dwSize, nSrcComps); + if (m_pTransform) + m_nSrcComponents = nSrcComps; +} + +CPDF_IccProfile::~CPDF_IccProfile() { + if (m_pTransform) + CPDF_ModuleMgr::Get()->GetIccModule()->DestroyTransform(m_pTransform); +} |