// Copyright (C) 2011  Davis E. King (davis@dlib.net), Nils Labugt
// License: Boost Software License   See LICENSE.txt for the full license.
#undef DLIB_LOAd_IMAGE_ABSTRACT_
#ifdef DLIB_LOAd_IMAGE_ABSTRACT_

#include "load_image_abstract.h"
#include "../string.h"

namespace dlib
{
    template <typename image_type>
    void load_image (
        image_type& image,
        const std::string& file_name
    );
    /*!
        requires
            - image_type == is an implementation of array2d/array2d_kernel_abstract.h
            - pixel_traits<typename image_type::type> is defined  
        ensures
            - let EXT == the extension of the file given by file_name converted
              to lower case (i.e.  the part of the file after the '.')
            - if (EXT == "png") then
                - performs: load_png(image, file_name);
            - else if (EXT == "jpg" || EXT == "jpeg") then
                - performs: load_jpeg(image, file_name);
            - else if (EXT == "bmp") then
                - performs: load_bmp(image, file_name);
            - else if (EXT == "dng") then
                - performs: load_dng(image, file_name);
            - else
                - throws image_load_error
        throws
            - image_load_error
                This exception is thrown if there is some error that prevents
                us from loading the given image file.
    !*/

}

#endif // DLIB_LOAd_IMAGE_ABSTRACT_