Index: core/fpdfapi/fpdf_page/include/cpdf_image.h |
diff --git a/core/fpdfapi/fpdf_page/include/cpdf_image.h b/core/fpdfapi/fpdf_page/include/cpdf_image.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..048b86d171c1d40ad8550a40767673bbb86a2f35 |
--- /dev/null |
+++ b/core/fpdfapi/fpdf_page/include/cpdf_image.h |
@@ -0,0 +1,98 @@ |
+// 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_FPDFAPI_FPDF_PAGE_INCLUDE_CPDF_IMAGE_H_ |
+#define CORE_FPDFAPI_FPDF_PAGE_INCLUDE_CPDF_IMAGE_H_ |
+ |
+#include "core/fpdfapi/fpdf_parser/include/cpdf_stream.h" |
+#include "core/fxcrt/include/fx_system.h" |
+ |
+#define PDF_IMAGE_NO_COMPRESS 0x0000 |
+#define PDF_IMAGE_LOSSY_COMPRESS 0x0001 |
+#define PDF_IMAGE_LOSSLESS_COMPRESS 0x0002 |
+#define PDF_IMAGE_MASK_LOSSY_COMPRESS 0x0004 |
+#define PDF_IMAGE_MASK_LOSSLESS_COMPRESS 0x0008 |
+ |
+class CFX_DIBitmap; |
+class CFX_DIBSource; |
+class CPDF_Dictionay; |
+class CPDF_Document; |
+class CPDF_Page; |
+class IFX_FileRead; |
+class IFX_FileWrite; |
+class IFX_Pause; |
+ |
+class CPDF_Image { |
+ public: |
+ explicit CPDF_Image(CPDF_Document* pDoc); |
+ ~CPDF_Image(); |
+ |
+ FX_BOOL LoadImageF(CPDF_Stream* pImageStream, FX_BOOL bInline); |
+ |
+ void Release(); |
+ |
+ CPDF_Image* Clone(); |
+ |
+ CPDF_Dictionary* GetInlineDict() const { return m_pInlineDict; } |
+ CPDF_Stream* GetStream() const { return m_pStream; } |
+ CPDF_Dictionary* GetDict() const { |
+ return m_pStream ? m_pStream->GetDict() : NULL; |
+ } |
+ CPDF_Dictionary* GetOC() const { return m_pOC; } |
+ CPDF_Document* GetDocument() const { return m_pDocument; } |
+ |
+ int32_t GetPixelHeight() const { return m_Height; } |
+ int32_t GetPixelWidth() const { return m_Width; } |
+ |
+ FX_BOOL IsInline() { return m_bInline; } |
+ FX_BOOL IsMask() const { return m_bIsMask; } |
+ FX_BOOL IsInterpol() const { return m_bInterpolate; } |
+ |
+ CFX_DIBSource* LoadDIBSource(CFX_DIBSource** ppMask = NULL, |
+ FX_DWORD* pMatteColor = NULL, |
+ FX_BOOL bStdCS = FALSE, |
+ FX_DWORD GroupFamily = 0, |
+ FX_BOOL bLoadMask = FALSE) const; |
+ |
+ void SetInlineDict(CPDF_Dictionary* pDict) { m_pInlineDict = pDict; } |
+ void SetImage(const CFX_DIBitmap* pDIBitmap, |
+ int32_t iCompress, |
+ IFX_FileWrite* pFileWrite = NULL, |
+ IFX_FileRead* pFileRead = NULL, |
+ const CFX_DIBitmap* pMask = NULL); |
+ void SetJpegImage(uint8_t* pImageData, FX_DWORD size); |
+ void SetJpegImage(IFX_FileRead* pFile); |
+ |
+ void ResetCache(CPDF_Page* pPage, const CFX_DIBitmap* pDIBitmap); |
+ |
+ FX_BOOL StartLoadDIBSource(CPDF_Dictionary* pFormResource, |
+ CPDF_Dictionary* pPageResource, |
+ FX_BOOL bStdCS = FALSE, |
+ FX_DWORD GroupFamily = 0, |
+ FX_BOOL bLoadMask = FALSE); |
+ FX_BOOL Continue(IFX_Pause* pPause); |
+ CFX_DIBSource* DetachBitmap(); |
+ CFX_DIBSource* DetachMask(); |
+ |
+ CFX_DIBSource* m_pDIBSource; |
+ CFX_DIBSource* m_pMask; |
+ FX_DWORD m_MatteColor; |
+ |
+ private: |
+ CPDF_Dictionary* InitJPEG(uint8_t* pData, FX_DWORD size); |
+ |
+ CPDF_Stream* m_pStream; |
+ FX_BOOL m_bInline; |
+ CPDF_Dictionary* m_pInlineDict; |
+ int32_t m_Height; |
+ int32_t m_Width; |
+ FX_BOOL m_bIsMask; |
+ FX_BOOL m_bInterpolate; |
+ CPDF_Document* m_pDocument; |
+ CPDF_Dictionary* m_pOC; |
+}; |
+ |
+#endif // CORE_FPDFAPI_FPDF_PAGE_INCLUDE_CPDF_IMAGE_H_ |