]> git.saurik.com Git - wxWidgets.git/blame_incremental - include/wx/imagpng.h
adding new files for xti merge
[wxWidgets.git] / include / wx / imagpng.h
... / ...
CommitLineData
1/////////////////////////////////////////////////////////////////////////////
2// Name: imagpng.h
3// Purpose: wxImage PNG handler
4// Author: Robert Roebling
5// RCS-ID: $Id$
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#include "wx/versioninfo.h"
23
24#define wxIMAGE_OPTION_PNG_FORMAT wxT("PngFormat")
25#define wxIMAGE_OPTION_PNG_BITDEPTH wxT("PngBitDepth")
26#define wxIMAGE_OPTION_PNG_FILTER wxT("PngF")
27#define wxIMAGE_OPTION_PNG_COMPRESSION_LEVEL wxT("PngZL")
28#define wxIMAGE_OPTION_PNG_COMPRESSION_MEM_LEVEL wxT("PngZM")
29#define wxIMAGE_OPTION_PNG_COMPRESSION_STRATEGY wxT("PngZS")
30#define wxIMAGE_OPTION_PNG_COMPRESSION_BUFFER_SIZE wxT("PngZB")
31
32enum
33{
34 wxPNG_TYPE_COLOUR = 0,
35 wxPNG_TYPE_GREY = 2,
36 wxPNG_TYPE_GREY_RED = 3
37};
38
39class WXDLLIMPEXP_CORE wxPNGHandler: public wxImageHandler
40{
41public:
42 inline wxPNGHandler()
43 {
44 m_name = wxT("PNG file");
45 m_extension = wxT("png");
46 m_type = wxBITMAP_TYPE_PNG;
47 m_mime = wxT("image/png");
48 }
49
50 static wxVersionInfo GetLibraryVersionInfo();
51
52#if wxUSE_STREAMS
53 virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=true, int index=-1 );
54 virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=true );
55protected:
56 virtual bool DoCanRead( wxInputStream& stream );
57#endif
58
59private:
60 DECLARE_DYNAMIC_CLASS(wxPNGHandler)
61};
62
63#endif
64 // wxUSE_LIBPNG
65
66#endif
67 // _WX_IMAGPNG_H_
68