LibreOffice Module vcl (master)  1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
vcl::PNGReaderImpl Class Reference
Collaboration diagram for vcl::PNGReaderImpl:
[legend]

Public Member Functions

 PNGReaderImpl (SvStream &)
 
 ~PNGReaderImpl ()
 
BitmapEx GetBitmapEx (const Size &rPreviewSizeHint)
 
const std::vector< vcl::PNGReader::ChunkData > & GetAllChunks ()
 
void SetIgnoreGammaChunk (bool bIgnore)
 

Private Member Functions

bool ReadNextChunk ()
 
void ReadRemainingChunks ()
 
void ImplSetPixel (sal_uInt32 y, sal_uInt32 x, const BitmapColor &)
 
void ImplSetPixel (sal_uInt32 y, sal_uInt32 x, sal_uInt8 nPalIndex)
 
void ImplSetTranspPixel (sal_uInt32 y, sal_uInt32 x, const BitmapColor &, bool bTrans)
 
void ImplSetAlphaPixel (sal_uInt32 y, sal_uInt32 x, sal_uInt8 nPalIndex, sal_uInt8 nAlpha)
 
void ImplSetAlphaPixel (sal_uInt32 y, sal_uInt32 x, const BitmapColor &, sal_uInt8 nAlpha)
 
void ImplReadIDAT ()
 
bool ImplPreparePass ()
 
void ImplApplyFilter ()
 
void ImplDrawScanline (sal_uInt32 nXStart, sal_uInt32 nXAdd)
 
bool ImplReadTransparent ()
 
void ImplGetGamma ()
 
void ImplGetBackground ()
 
sal_uInt8 ImplScaleColor ()
 
bool ImplReadHeader (const Size &rPreviewSizeHint)
 
bool ImplReadPalette ()
 
void ImplGetGrayPalette (sal_uInt16)
 
sal_uInt32 ImplReadsal_uInt32 ()
 

Private Attributes

SvStreammrPNGStream
 
SvStreamEndian mnOrigStreamMode
 
std::vector< vcl::PNGReader::ChunkDatamaChunkSeq
 
std::vector< vcl::PNGReader::ChunkData >::iterator maChunkIter
 
std::vector< sal_uInt8 >::iterator maDataIter
 
std::unique_ptr< BitmapmpBmp
 
BitmapScopedWriteAccess mxAcc
 
std::unique_ptr< BitmapmpMaskBmp
 
BitmapScopedWriteAccess mxMaskAcc
 
std::unique_ptr< AlphaMaskmpAlphaMask
 
AlphaScopedWriteAccess mxAlphaAcc
 
BitmapWriteAccessmpMaskAcc
 
ZCodec mpZCodec
 
std::unique_ptr< sal_uInt8[]> mpInflateInBuf
 
std::unique_ptr< sal_uInt8[]> mpScanPrior
 
std::unique_ptr< sal_uInt8[]> mpTransTab
 
sal_uInt8mpScanCurrent
 
sal_uInt8mpColorTable
 
std::size_t mnStreamSize
 
sal_uInt32 mnChunkType
 
sal_Int32 mnChunkLen
 
Size maOrigSize
 
Size maTargetSize
 
Size maPhysSize
 
sal_uInt32 mnBPP
 
sal_uInt32 mnScansize
 
sal_uInt32 mnYpos
 
int mnPass
 
sal_uInt32 mnXStart
 
sal_uInt32 mnXAdd
 
sal_uInt32 mnYAdd
 
int mnPreviewShift
 
int mnPreviewMask
 
sal_uInt16 mnTargetDepth
 
sal_uInt8 mnTransRed
 
sal_uInt8 mnTransGreen
 
sal_uInt8 mnTransBlue
 
sal_uInt8 mnPngDepth
 
sal_uInt8 mnColorType
 
sal_uInt8 mnCompressionType
 
sal_uInt8 mnFilterType
 
sal_uInt8 mnInterlaceType
 
const BitmapColor mcTranspColor
 
const BitmapColor mcOpaqueColor
 
bool mbTransparent: 1
 
bool mbAlphaChannel: 1
 
bool mbRGBTriple: 1
 
bool mbPalette: 1
 
bool mbGrayScale: 1
 
bool mbzCodecInUse: 1
 
bool mbStatus: 1
 
bool mbIDATStarted: 1
 
bool mbIDATComplete: 1
 
bool mbpHYs: 1
 
bool mbIgnoreGammaChunk: 1
 
bool const mbIgnoreCRC: 1
 
sal_Int32 mnAllocSizeScanline
 
sal_Int32 mnAllocSizeScanlineAlpha
 
std::unique_ptr< sal_uInt8[]> mpScanline
 
std::unique_ptr< sal_uInt8[]> mpScanlineAlpha
 

Detailed Description

Definition at line 72 of file pngread.cxx.

Constructor & Destructor Documentation

vcl::PNGReaderImpl::PNGReaderImpl ( SvStream rPNGStream)
explicit
vcl::PNGReaderImpl::~PNGReaderImpl ( )

Member Function Documentation

const std::vector< vcl::PNGReader::ChunkData > & vcl::PNGReaderImpl::GetAllChunks ( )

Definition at line 327 of file pngread.cxx.

References maChunkSeq, and ReadRemainingChunks().

BitmapEx vcl::PNGReaderImpl::GetBitmapEx ( const Size rPreviewSizeHint)
void vcl::PNGReaderImpl::ImplApplyFilter ( )
private

Definition at line 1028 of file pngread.cxx.

References mnBPP, mnScansize, mpInflateInBuf, and mpScanPrior.

Referenced by ImplReadIDAT().

void vcl::PNGReaderImpl::ImplDrawScanline ( sal_uInt32  nXStart,
sal_uInt32  nXAdd 
)
private
void vcl::PNGReaderImpl::ImplGetBackground ( )
private
void vcl::PNGReaderImpl::ImplGetGamma ( )
private
void vcl::PNGReaderImpl::ImplGetGrayPalette ( sal_uInt16  nBitDepth)
private
bool vcl::PNGReaderImpl::ImplPreparePass ( )
private
bool vcl::PNGReaderImpl::ImplReadHeader ( const Size rPreviewSizeHint)
private
void vcl::PNGReaderImpl::ImplReadIDAT ( )
private
bool vcl::PNGReaderImpl::ImplReadPalette ( )
private
sal_uInt32 vcl::PNGReaderImpl::ImplReadsal_uInt32 ( )
private

Definition at line 1713 of file pngread.cxx.

References maDataIter.

Referenced by GetBitmapEx(), ImplGetGamma(), and ImplReadHeader().

bool vcl::PNGReaderImpl::ImplReadTransparent ( )
private
sal_uInt8 vcl::PNGReaderImpl::ImplScaleColor ( )
private

Definition at line 882 of file pngread.cxx.

References maDataIter, and mnPngDepth.

Referenced by ImplGetBackground(), and ImplReadTransparent().

void vcl::PNGReaderImpl::ImplSetAlphaPixel ( sal_uInt32  y,
sal_uInt32  x,
sal_uInt8  nPalIndex,
sal_uInt8  nAlpha 
)
private
void vcl::PNGReaderImpl::ImplSetAlphaPixel ( sal_uInt32  y,
sal_uInt32  x,
const BitmapColor rBitmapColor,
sal_uInt8  nAlpha 
)
private
void vcl::PNGReaderImpl::ImplSetPixel ( sal_uInt32  y,
sal_uInt32  x,
const BitmapColor rBitmapColor 
)
private

Definition at line 1652 of file pngread.cxx.

References mnPreviewMask, mnPreviewShift, mxAcc, and BitmapWriteAccess::SetPixel().

Referenced by ImplDrawScanline().

void vcl::PNGReaderImpl::ImplSetPixel ( sal_uInt32  y,
sal_uInt32  x,
sal_uInt8  nPalIndex 
)
private
void vcl::PNGReaderImpl::ImplSetTranspPixel ( sal_uInt32  y,
sal_uInt32  x,
const BitmapColor rBitmapColor,
bool  bTrans 
)
private
bool vcl::PNGReaderImpl::ReadNextChunk ( )
private
void vcl::PNGReaderImpl::ReadRemainingChunks ( )
private

Definition at line 322 of file pngread.cxx.

References ReadNextChunk().

Referenced by GetAllChunks().

void vcl::PNGReaderImpl::SetIgnoreGammaChunk ( bool  bIgnore)
inline

Definition at line 177 of file pngread.cxx.

References mbIgnoreGammaChunk.

Member Data Documentation

std::vector<vcl::PNGReader::ChunkData>::iterator vcl::PNGReaderImpl::maChunkIter
private

Definition at line 79 of file pngread.cxx.

Referenced by GetBitmapEx(), PNGReaderImpl(), and ReadNextChunk().

std::vector<vcl::PNGReader::ChunkData> vcl::PNGReaderImpl::maChunkSeq
private

Definition at line 78 of file pngread.cxx.

Referenced by GetAllChunks(), GetBitmapEx(), PNGReaderImpl(), and ReadNextChunk().

std::vector<sal_uInt8>::iterator vcl::PNGReaderImpl::maDataIter
private
Size vcl::PNGReaderImpl::maOrigSize
private
Size vcl::PNGReaderImpl::maPhysSize
private

Definition at line 104 of file pngread.cxx.

Referenced by GetBitmapEx().

Size vcl::PNGReaderImpl::maTargetSize
private

Definition at line 103 of file pngread.cxx.

Referenced by ImplReadHeader(), and ImplReadTransparent().

bool vcl::PNGReaderImpl::mbAlphaChannel
private
bool vcl::PNGReaderImpl::mbGrayScale
private

Definition at line 129 of file pngread.cxx.

Referenced by ImplGetGamma(), and ImplReadHeader().

bool vcl::PNGReaderImpl::mbIDATComplete
private

Definition at line 133 of file pngread.cxx.

Referenced by GetBitmapEx(), ImplReadHeader(), and ImplReadIDAT().

bool vcl::PNGReaderImpl::mbIDATStarted
private

Definition at line 132 of file pngread.cxx.

Referenced by GetBitmapEx(), ImplReadHeader(), and ImplReadIDAT().

bool const vcl::PNGReaderImpl::mbIgnoreCRC
private

Definition at line 136 of file pngread.cxx.

Referenced by ReadNextChunk().

bool vcl::PNGReaderImpl::mbIgnoreGammaChunk
private

Definition at line 135 of file pngread.cxx.

Referenced by GetBitmapEx(), and SetIgnoreGammaChunk().

bool vcl::PNGReaderImpl::mbPalette
private

Definition at line 128 of file pngread.cxx.

Referenced by GetBitmapEx(), ImplDrawScanline(), ImplReadHeader(), and ImplReadPalette().

bool vcl::PNGReaderImpl::mbpHYs
private

Definition at line 134 of file pngread.cxx.

Referenced by GetBitmapEx().

bool vcl::PNGReaderImpl::mbRGBTriple
private

Definition at line 127 of file pngread.cxx.

Referenced by ImplPreparePass(), and ImplReadHeader().

bool vcl::PNGReaderImpl::mbStatus
private
bool vcl::PNGReaderImpl::mbTransparent
private

Definition at line 125 of file pngread.cxx.

Referenced by ImplDrawScanline(), ImplReadHeader(), and ImplReadTransparent().

bool vcl::PNGReaderImpl::mbzCodecInUse
private

Definition at line 130 of file pngread.cxx.

Referenced by ImplReadIDAT(), and ~PNGReaderImpl().

const BitmapColor vcl::PNGReaderImpl::mcOpaqueColor
private

Definition at line 124 of file pngread.cxx.

Referenced by ImplSetTranspPixel().

const BitmapColor vcl::PNGReaderImpl::mcTranspColor
private

Definition at line 123 of file pngread.cxx.

Referenced by ImplSetTranspPixel().

sal_Int32 vcl::PNGReaderImpl::mnAllocSizeScanline
private

Definition at line 140 of file pngread.cxx.

Referenced by ImplDrawScanline().

sal_Int32 vcl::PNGReaderImpl::mnAllocSizeScanlineAlpha
private

Definition at line 141 of file pngread.cxx.

Referenced by ImplDrawScanline().

sal_uInt32 vcl::PNGReaderImpl::mnBPP
private

Definition at line 105 of file pngread.cxx.

Referenced by ImplApplyFilter(), and ImplReadHeader().

sal_Int32 vcl::PNGReaderImpl::mnChunkLen
private
sal_uInt32 vcl::PNGReaderImpl::mnChunkType
private

Definition at line 100 of file pngread.cxx.

Referenced by GetBitmapEx(), and ReadNextChunk().

sal_uInt8 vcl::PNGReaderImpl::mnColorType
private

Definition at line 119 of file pngread.cxx.

Referenced by ImplGetBackground(), ImplReadHeader(), and ImplReadTransparent().

sal_uInt8 vcl::PNGReaderImpl::mnCompressionType
private

Definition at line 120 of file pngread.cxx.

Referenced by ImplReadHeader().

sal_uInt8 vcl::PNGReaderImpl::mnFilterType
private

Definition at line 121 of file pngread.cxx.

Referenced by ImplReadHeader().

sal_uInt8 vcl::PNGReaderImpl::mnInterlaceType
private

Definition at line 122 of file pngread.cxx.

Referenced by ImplPreparePass(), ImplReadHeader(), and ImplReadIDAT().

SvStreamEndian vcl::PNGReaderImpl::mnOrigStreamMode
private

Definition at line 76 of file pngread.cxx.

Referenced by PNGReaderImpl(), and ~PNGReaderImpl().

int vcl::PNGReaderImpl::mnPass
private

Definition at line 108 of file pngread.cxx.

Referenced by ImplPreparePass(), ImplReadHeader(), and ImplReadIDAT().

sal_uInt8 vcl::PNGReaderImpl::mnPngDepth
private
int vcl::PNGReaderImpl::mnPreviewMask
private
int vcl::PNGReaderImpl::mnPreviewShift
private
sal_uInt32 vcl::PNGReaderImpl::mnScansize
private

Definition at line 106 of file pngread.cxx.

Referenced by ImplApplyFilter(), ImplPreparePass(), ImplReadHeader(), and ImplReadIDAT().

std::size_t vcl::PNGReaderImpl::mnStreamSize
private

Definition at line 99 of file pngread.cxx.

Referenced by ImplReadHeader(), PNGReaderImpl(), and ReadNextChunk().

sal_uInt16 vcl::PNGReaderImpl::mnTargetDepth
private

Definition at line 114 of file pngread.cxx.

Referenced by ImplReadHeader().

sal_uInt8 vcl::PNGReaderImpl::mnTransBlue
private

Definition at line 117 of file pngread.cxx.

Referenced by ImplDrawScanline(), and ImplReadTransparent().

sal_uInt8 vcl::PNGReaderImpl::mnTransGreen
private

Definition at line 116 of file pngread.cxx.

Referenced by ImplDrawScanline(), and ImplReadTransparent().

sal_uInt8 vcl::PNGReaderImpl::mnTransRed
private

Definition at line 115 of file pngread.cxx.

Referenced by ImplDrawScanline(), and ImplReadTransparent().

sal_uInt32 vcl::PNGReaderImpl::mnXAdd
private

Definition at line 110 of file pngread.cxx.

Referenced by ImplPreparePass(), and ImplReadIDAT().

sal_uInt32 vcl::PNGReaderImpl::mnXStart
private

Definition at line 109 of file pngread.cxx.

Referenced by ImplPreparePass(), and ImplReadIDAT().

sal_uInt32 vcl::PNGReaderImpl::mnYAdd
private

Definition at line 111 of file pngread.cxx.

Referenced by ImplPreparePass(), and ImplReadIDAT().

sal_uInt32 vcl::PNGReaderImpl::mnYpos
private

Definition at line 107 of file pngread.cxx.

Referenced by ImplDrawScanline(), ImplPreparePass(), and ImplReadIDAT().

std::unique_ptr<AlphaMask> vcl::PNGReaderImpl::mpAlphaMask
private

Definition at line 86 of file pngread.cxx.

Referenced by GetBitmapEx(), ImplReadHeader(), and ImplReadTransparent().

std::unique_ptr<Bitmap> vcl::PNGReaderImpl::mpBmp
private

Definition at line 82 of file pngread.cxx.

Referenced by GetBitmapEx(), and ImplReadHeader().

sal_uInt8* vcl::PNGReaderImpl::mpColorTable
private
std::unique_ptr<sal_uInt8[]> vcl::PNGReaderImpl::mpInflateInBuf
private
BitmapWriteAccess* vcl::PNGReaderImpl::mpMaskAcc
private
std::unique_ptr<Bitmap> vcl::PNGReaderImpl::mpMaskBmp
private

Definition at line 84 of file pngread.cxx.

Referenced by GetBitmapEx(), and ImplReadTransparent().

sal_uInt8* vcl::PNGReaderImpl::mpScanCurrent
private

Definition at line 97 of file pngread.cxx.

Referenced by ImplReadHeader(), and ImplReadIDAT().

std::unique_ptr<sal_uInt8[]> vcl::PNGReaderImpl::mpScanline
private

Definition at line 145 of file pngread.cxx.

Referenced by ImplDrawScanline().

std::unique_ptr<sal_uInt8[]> vcl::PNGReaderImpl::mpScanlineAlpha
private

Definition at line 147 of file pngread.cxx.

Referenced by ImplDrawScanline().

std::unique_ptr<sal_uInt8[]> vcl::PNGReaderImpl::mpScanPrior
private

Definition at line 94 of file pngread.cxx.

Referenced by ImplApplyFilter(), ImplPreparePass(), and ImplReadHeader().

std::unique_ptr<sal_uInt8[]> vcl::PNGReaderImpl::mpTransTab
private

Definition at line 96 of file pngread.cxx.

Referenced by ImplDrawScanline(), and ImplReadTransparent().

ZCodec vcl::PNGReaderImpl::mpZCodec
private

Definition at line 90 of file pngread.cxx.

Referenced by ImplReadIDAT(), and ~PNGReaderImpl().

SvStream& vcl::PNGReaderImpl::mrPNGStream
private

Definition at line 75 of file pngread.cxx.

Referenced by PNGReaderImpl(), ReadNextChunk(), and ~PNGReaderImpl().

BitmapScopedWriteAccess vcl::PNGReaderImpl::mxAcc
private
AlphaScopedWriteAccess vcl::PNGReaderImpl::mxAlphaAcc
private

Definition at line 87 of file pngread.cxx.

Referenced by GetBitmapEx(), ImplReadHeader(), and ImplReadTransparent().

BitmapScopedWriteAccess vcl::PNGReaderImpl::mxMaskAcc
private

Definition at line 85 of file pngread.cxx.

Referenced by GetBitmapEx(), and ImplReadTransparent().


The documentation for this class was generated from the following file: