12 # include <vcl_msvc_warnings.h> 17 static std::vector<vil_image_resource_plugin*>
18 *vil_image_resource_plugins_list_ =
nullptr;
24 const std::string & path,
const std::string & filetype,
25 const std::string & colour)
27 if (vil_image_resource_plugins_list_==
nullptr ||
28 is_a()!=std::string(
"vil_image_resource_plugin"))
33 for (
unsigned int i=0;i<vil_image_resource_plugins_list_->size();i++)
35 if (vil_image_resource_plugins_list_->operator[](i)->load_the_image(
36 image,path,filetype,colour))
50 if (plugin==
nullptr || plugin->
is_a()==std::string(
"vil_image_resource_plugin"))
55 if (vil_image_resource_plugins_list_==
nullptr)
57 vil_image_resource_plugins_list_ =
58 new std::vector<vil_image_resource_plugin*>();
61 vil_image_resource_plugins_list_->push_back(plugin);
68 if (vil_image_resource_plugins_list_==
nullptr)
return;
69 auto n = (
unsigned int)(vil_image_resource_plugins_list_->size());
70 for (
unsigned int i=0;i<n;++i)
71 delete vil_image_resource_plugins_list_->operator[](i);
72 vil_image_resource_plugins_list_->resize(0);
75 delete vil_image_resource_plugins_list_;
76 vil_image_resource_plugins_list_=
nullptr;
83 if (vil_image_resource_plugins_list_==
nullptr ||
84 is_a()!=std::string(
"vil_image_resource_plugin"))
89 for (
unsigned int i=0;i<vil_image_resource_plugins_list_->size();i++)
91 if (vil_image_resource_plugins_list_->operator[](i)->can_be_loaded(
static void register_plugin(vil_image_resource_plugin *plugin)
Register a vil_image_resource_plugin to the list of plugins.
Interface for loading new image formats.
virtual bool can_be_loaded(const std::string &filename)
Check whether a filename is a potential candidate for loading and if it is available.
virtual std::string is_a() const
Name of the class.
virtual bool load_the_image(vil_image_view_base_sptr &image, const std::string &path)
Attempt to load image from named file.
static void delete_all_plugins()
Delete all registered plugins.
A base class for a plugin for vil images loading.