mirror of
https://github.com/CloudCompare/PoissonRecon.git
synced 2026-08-30 00:50:28 +08:00
40 lines
1.0 KiB
C++
40 lines
1.0 KiB
C++
#ifndef PNG_INCLUDED
|
|
#define PNG_INCLUDED
|
|
|
|
#ifdef _WIN32
|
|
#include "PNG/png.h"
|
|
#else // !_WIN32
|
|
#include <png.h>
|
|
#endif // _WIN32
|
|
|
|
struct PNGReader : public ImageReader
|
|
{
|
|
PNGReader( const char* fileName , unsigned int& width , unsigned int& height , unsigned int& channels );
|
|
~PNGReader( void );
|
|
unsigned int nextRow( unsigned char* row );
|
|
static bool GetInfo( const char* fileName , unsigned int& width , unsigned int& height , unsigned int& channels );
|
|
protected:
|
|
png_structp _png_ptr;
|
|
png_infop _info_ptr;
|
|
png_infop _end_info ;
|
|
FILE* _fp;
|
|
unsigned char* _scratchRow;
|
|
unsigned int _currentRow;
|
|
};
|
|
|
|
struct PNGWriter : public ImageWriter
|
|
{
|
|
PNGWriter( const char* fileName , unsigned int width , unsigned int height , unsigned int channels , unsigned int quality=100 );
|
|
~PNGWriter( void );
|
|
unsigned int nextRow( const unsigned char* row );
|
|
unsigned int nextRows( const unsigned char* rows , unsigned int rowNum );
|
|
protected:
|
|
FILE* _fp;
|
|
png_structp _png_ptr;
|
|
png_infop _info_ptr;
|
|
unsigned int _currentRow;
|
|
};
|
|
|
|
#include "PNG.inl"
|
|
#endif //PNG_INCLUDED
|