void ProgressivePNGImageFileReader::open(const char* filename) { assert(filename); assert(!is_open()); PNGImageFileReader reader; auto_ptr<Image> image(reader.read(filename, &impl->m_attributes)); impl->m_image.reset( new Image( *image.get(), impl->m_tile_width, impl->m_tile_height, image->properties().m_pixel_format)); }
Image* GenericImageFileReader::read( const char* filename, ImageAttributes* image_attributes) { const filesystem::path filepath(filename); const string extension = lower_case(filepath.extension().string()); if (extension == ".exr") { EXRImageFileReader reader; return reader.read(filename, image_attributes); } else if (extension == ".png") { PNGImageFileReader reader; return reader.read(filename, image_attributes); } else { throw ExceptionUnsupportedFileFormat(filename); return 0; } }