+void ImageLoader::load(Image::Data &data)
+{
+ if(state>=FINISHED)
+ throw logic_error("already loaded");
+
+ if(state<HEADERS_LOADED)
+ load_headers_(data);
+ load_pixels_(data);
+ state = FINISHED;
+}
+
+void ImageLoader::load_headers(Image::Data &data)
+{
+ if(state>=HEADERS_LOADED)
+ throw logic_error("headers already loaded");
+
+ load_headers_(data);
+ state = HEADERS_LOADED;
+}
+