]> git.saurik.com Git - wxWidgets.git/blob - include/wx/imagpng.h
Applied #15226 with modifications: wxRichTextCtrl: Implement setting properties with...
[wxWidgets.git] / include / wx / imagpng.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/imagpng.h
3 // Purpose: wxImage PNG handler
4 // Author: Robert Roebling
5 // Copyright: (c) Robert Roebling
6 // Licence: wxWindows licence
7 /////////////////////////////////////////////////////////////////////////////
8
9 #ifndef _WX_IMAGPNG_H_
10 #define _WX_IMAGPNG_H_
11
12 #include "wx/defs.h"
13
14 //-----------------------------------------------------------------------------
15 // wxPNGHandler
16 //-----------------------------------------------------------------------------
17
18 #if wxUSE_LIBPNG
19
20 #include "wx/image.h"
21 #include "wx/versioninfo.h"
22
23 #define wxIMAGE_OPTION_PNG_FORMAT wxT("PngFormat")
24 #define wxIMAGE_OPTION_PNG_BITDEPTH wxT("PngBitDepth")
25 #define wxIMAGE_OPTION_PNG_FILTER wxT("PngF")
26 #define wxIMAGE_OPTION_PNG_COMPRESSION_LEVEL wxT("PngZL")
27 #define wxIMAGE_OPTION_PNG_COMPRESSION_MEM_LEVEL wxT("PngZM")
28 #define wxIMAGE_OPTION_PNG_COMPRESSION_STRATEGY wxT("PngZS")
29 #define wxIMAGE_OPTION_PNG_COMPRESSION_BUFFER_SIZE wxT("PngZB")
30
31 enum
32 {
33 wxPNG_TYPE_COLOUR = 0,
34 wxPNG_TYPE_GREY = 2,
35 wxPNG_TYPE_GREY_RED = 3,
36 wxPNG_TYPE_PALETTE = 4
37 };
38
39 class WXDLLIMPEXP_CORE wxPNGHandler: public wxImageHandler
40 {
41 public:
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 );
55 protected:
56 virtual bool DoCanRead( wxInputStream& stream );
57 #endif
58
59 private:
60 DECLARE_DYNAMIC_CLASS(wxPNGHandler)
61 };
62
63 #endif
64 // wxUSE_LIBPNG
65
66 #endif
67 // _WX_IMAGPNG_H_
68