PieDock  1.6.3
Png.h
1 /*
2  * O ,-
3  * o . - ' ,-
4  * . ` . ,
5  * ( )) . (
6  * `-;_ . - `.`.
7  * `._'
8  *
9  * Copyright (c) 2012 Markus Fisch <mf@markusfisch.de>
10  *
11  * Licensed under the MIT license:
12  * http://www.opensource.org/licenses/mit-license.php
13  */
14 #ifndef _PieDock_Png_
15 #define _PieDock_Png_
16 
17 #include "ArgbSurface.h"
18 
19 #include <istream>
20 #include <ostream>
21 #include <string>
22 #include <png.h>
23 
24 namespace PieDock
25 {
29  class Png
30  {
31  public:
32  virtual ~Png() {}
33  static ArgbSurface *load( const std::string & );
34  static ArgbSurface *load( std::istream & );
35  static void save( const std::string &, const ArgbSurface * );
36  static void save( std::ostream &, const ArgbSurface * );
37 
38  protected:
39  static void read( png_structp, png_bytep, png_size_t );
40  static void write( png_structp, png_bytep, png_size_t );
41  static void flush( png_structp );
42 
43  private:
44  Png() {}
45  };
46 }
47 
48 #endif