Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(328)

Unified Diff: core/fxcodec/codec/ccodec_iccmodule.h

Issue 1876023003: Remove ICodec_* Interfaces. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « core/fxcodec/codec/ccodec_gifmodule.h ('k') | core/fxcodec/codec/ccodec_jbig2module.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: core/fxcodec/codec/ccodec_iccmodule.h
diff --git a/core/fxcodec/codec/ccodec_iccmodule.h b/core/fxcodec/codec/ccodec_iccmodule.h
new file mode 100644
index 0000000000000000000000000000000000000000..9eabd384827545c6fce3721c618f64ed68631f49
--- /dev/null
+++ b/core/fxcodec/codec/ccodec_iccmodule.h
@@ -0,0 +1,95 @@
+// Copyright 2016 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
+
+#ifndef CORE_FXCODEC_CODEC_CCODEC_ICCMODULE_H_
+#define CORE_FXCODEC_CODEC_CCODEC_ICCMODULE_H_
+
+#include "core/fxcodec/include/fx_codec_def.h"
+#include "core/fxcrt/include/fx_string.h"
+#include "core/fxcrt/include/fx_system.h"
+
+class CFX_BinaryBuf;
+class CFX_IccProfileCache;
+class CFX_IccTransformCache;
+class CFX_PrivateData;
+class IFX_FileRead;
+
+class CCodec_IccModule {
+ public:
+ enum IccCS {
+ IccCS_Unknown = 0,
+ IccCS_XYZ,
+ IccCS_Lab,
+ IccCS_Luv,
+ IccCS_YCbCr,
+ IccCS_Yxy,
+ IccCS_Hsv,
+ IccCS_Hls,
+ IccCS_Gray,
+ IccCS_Rgb,
+ IccCS_Cmyk,
+ IccCS_Cmy
+ };
+
+ struct IccParam {
+ uint32_t Version;
+ IccCS ColorSpace;
+ uint32_t dwProfileType;
+ uint32_t dwFormat;
+ uint8_t* pProfileData;
+ uint32_t dwProfileSize;
+ double Gamma;
+ };
+
+ ~CCodec_IccModule();
+
+ IccCS GetProfileCS(const uint8_t* pProfileData, unsigned int dwProfileSize);
+ IccCS GetProfileCS(IFX_FileRead* pFile);
+ void* CreateTransform(CCodec_IccModule::IccParam* pInputParam,
+ CCodec_IccModule::IccParam* pOutputParam,
+ CCodec_IccModule::IccParam* pProofParam = nullptr,
+ uint32_t dwIntent = Icc_INTENT_PERCEPTUAL,
+ uint32_t dwFlag = Icc_FLAGS_DEFAULT,
+ uint32_t dwPrfIntent = Icc_INTENT_ABSOLUTE_COLORIMETRIC,
+ uint32_t dwPrfFlag = Icc_FLAGS_SOFTPROOFING);
+ void* CreateTransform_sRGB(const uint8_t* pProfileData,
+ uint32_t dwProfileSize,
+ uint32_t& nComponents,
+ int32_t intent = 0,
+ uint32_t dwSrcFormat = Icc_FORMAT_DEFAULT);
+ void* CreateTransform_CMYK(const uint8_t* pSrcProfileData,
+ uint32_t dwSrcProfileSize,
+ uint32_t& nSrcComponents,
+ const uint8_t* pDstProfileData,
+ uint32_t dwDstProfileSize,
+ int32_t intent = 0,
+ uint32_t dwSrcFormat = Icc_FORMAT_DEFAULT,
+ uint32_t dwDstFormat = Icc_FORMAT_DEFAULT);
+ void DestroyTransform(void* pTransform);
+ void Translate(void* pTransform, FX_FLOAT* pSrcValues, FX_FLOAT* pDestValues);
+ void TranslateScanline(void* pTransform,
+ uint8_t* pDest,
+ const uint8_t* pSrc,
+ int pixels);
+ void SetComponents(uint32_t nComponents) { m_nComponents = nComponents; }
+
+ protected:
+ enum Icc_CLASS {
+ Icc_CLASS_INPUT = 0,
+ Icc_CLASS_OUTPUT,
+ Icc_CLASS_PROOF,
+ Icc_CLASS_MAX
+ };
+ void* CreateProfile(CCodec_IccModule::IccParam* pIccParam,
+ Icc_CLASS ic,
+ CFX_BinaryBuf* pTransformKey);
+
+ uint32_t m_nComponents;
+ std::map<CFX_ByteString, CFX_IccTransformCache*> m_MapTranform;
+ std::map<CFX_ByteString, CFX_IccProfileCache*> m_MapProfile;
+};
+
+#endif // CORE_FXCODEC_CODEC_CCODEC_ICCMODULE_H_
« no previous file with comments | « core/fxcodec/codec/ccodec_gifmodule.h ('k') | core/fxcodec/codec/ccodec_jbig2module.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698