1/////////////////////////////////////////////////////////////////////////////
2// Name:        imagpng.h
3// Purpose:     wxImage PNG handler
4// Author:      Robert Roebling
5// RCS-ID:      $Id: imagpng.h 37393 2006-02-08 21:47:09Z VZ $
6// Copyright:   (c) Robert Roebling
7// Licence:     wxWindows licence
8/////////////////////////////////////////////////////////////////////////////
9
10#ifndef _WX_IMAGPNG_H_
11#define _WX_IMAGPNG_H_
12
13#include "wx/defs.h"
14
15//-----------------------------------------------------------------------------
16// wxPNGHandler
17//-----------------------------------------------------------------------------
18
19#if wxUSE_LIBPNG
20
21#include "wx/image.h"
22
23#define wxIMAGE_OPTION_PNG_FORMAT    wxT("PngFormat")
24#define wxIMAGE_OPTION_PNG_BITDEPTH  wxT("PngBitDepth")
25
26enum
27{
28    wxPNG_TYPE_COLOUR = 0,
29    wxPNG_TYPE_GREY = 2,
30    wxPNG_TYPE_GREY_RED = 3
31};
32
33class WXDLLEXPORT wxPNGHandler: public wxImageHandler
34{
35public:
36    inline wxPNGHandler()
37    {
38        m_name = wxT("PNG file");
39        m_extension = wxT("png");
40        m_type = wxBITMAP_TYPE_PNG;
41        m_mime = wxT("image/png");
42    }
43
44#if wxUSE_STREAMS
45    virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=true, int index=-1 );
46    virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=true );
47protected:
48    virtual bool DoCanRead( wxInputStream& stream );
49#endif
50
51private:
52    DECLARE_DYNAMIC_CLASS(wxPNGHandler)
53};
54
55#endif
56  // wxUSE_LIBPNG
57
58#endif
59  // _WX_IMAGPNG_H_
60
61