+bool
+Image::writePNG(const char *filename) const
+{
+ std::ofstream os(filename, std::ofstream::binary);
+ if (!os) {
+ return false;
+ }
+ return writePNG(os);
+}
+
+
+static void
+pngReadCallback(png_structp png_ptr, png_bytep data, png_size_t length)
+{
+ std::istream *os = (std::istream *) png_get_io_ptr(png_ptr);
+ os->read((char *)data, length);
+}
+
+