48 pdfium::span<
const uint8_t>
GetScanline(
int line)
const override;
58 const CPDF_Dictionary* pFormResources,
59 const CPDF_Dictionary* pPageResources,
63 const CFX_Size& max_size_required);
71 struct JpxSMaskInlineData {
73 ~JpxSMaskInlineData();
77 DataVector<uint8_t> data;
80 bool LoadInternal(
const CPDF_Dictionary* pFormResources,
81 const CPDF_Dictionary* pPageResources);
82 bool ContinueInternal();
85 bool ContinueToLoadMask();
87 bool LoadColorInfo(
const CPDF_Dictionary* pFormResources,
88 const CPDF_Dictionary* pPageResources);
89 bool GetDecodeAndMaskArray();
90 RetainPtr<CFX_DIBitmap> LoadJpxBitmap(uint8_t resolution_levels_to_skip);
92 LoadState CreateDecoder(uint8_t resolution_levels_to_skip);
93 bool CreateDCTDecoder(pdfium::span<
const uint8_t> src_span,
94 const CPDF_Dictionary* pParams);
95 void TranslateScanline24bpp(pdfium::span<uint8_t> dest_scan,
96 pdfium::span<
const uint8_t> src_scan)
const;
97 bool TranslateScanline24bppDefaultDecode(
98 pdfium::span<uint8_t> dest_scan,
99 pdfium::span<
const uint8_t> src_scan)
const;
100 bool ValidateDictParam(
const ByteString& filter);
101 bool TransMask()
const;
102 void SetMaskProperties();
104 uint32_t Get1BitSetValue()
const;
105 uint32_t Get1BitResetValue()
const;
108 RetainPtr<
const CPDF_Stream>
const m_pStream;
109 RetainPtr<
const CPDF_Dictionary> m_pDict;
113 uint32_t m_bpc_orig = 0;
114 uint32_t m_nComponents = 0;
117 uint32_t m_MatteColor = 0;
119 bool m_bLoadMask =
false;
120 bool m_bDefaultDecode =
true;
121 bool m_bImageMask =
false;
122 bool m_bDoBpcCheck =
true;
123 bool m_bColorKey =
false;
124 bool m_bHasMask =
false;
125 bool m_bStdCS =
false;
126 std::vector<DIB_COMP_DATA> m_CompData;
127 mutable DataVector<uint8_t> m_LineBuf;
128 mutable DataVector<uint8_t> m_MaskBuf;
133 std::unique_ptr<fxcodec::ScanlineDecoder> m_pDecoder;
134 JpxSMaskInlineData m_JpxInlineData;
137 std::unique_ptr<fxcodec::Jbig2Context> m_pJbig2Context;
LoadState StartLoadDIBBase(bool bHasMask, const CPDF_Dictionary *pFormResources, const CPDF_Dictionary *pPageResources, bool bStdCS, CPDF_ColorSpace::Family GroupFamily, bool bLoadMask, const CFX_Size &max_size_required)