// // Copyright 2013 Christian Henning // // Distributed under the Boost Software License, Version 1.0 // See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt // #define BOOST_GIL_IO_ADD_FS_PATH_SUPPORT #define BOOST_FILESYSTEM_VERSION 3 #include #include #include #include #include #include #include #include #include #include "paths.hpp" namespace fs = boost::filesystem; namespace gil = boost::gil; void test_make_reader_backend() { { static_assert( std::is_same::type, std::true_type>::value, ""); gil::get_reader_backend::type backend_char = gil::make_reader_backend(bmp_filename.c_str(), gil::bmp_tag()); gil::get_reader_backend::type backend_string = gil::make_reader_backend(bmp_filename, gil::bmp_tag()); FILE* file = fopen(bmp_filename.c_str(), "rb"); gil::get_reader_backend::type backend_file = gil::make_reader_backend(file, gil::bmp_tag()); std::ifstream in(bmp_filename.c_str(), std::ios::binary); gil::get_reader_backend::type backend_ifstream = gil::make_reader_backend(in, gil::bmp_tag()); fs::path my_path(bmp_filename); gil::get_reader_backend::type backend_wstring = gil::make_reader_backend(my_path.wstring(), gil::bmp_tag()); gil::get_reader_backend::type backend_path = gil::make_reader_backend(my_path, gil::bmp_tag()); } { gil::get_reader_backend::type backend_char = gil::make_reader_backend(bmp_filename.c_str(), gil::image_read_settings()); gil::get_reader_backend::type backend_string = gil::make_reader_backend(bmp_filename, gil::image_read_settings()); FILE* file = fopen(bmp_filename.c_str(), "rb"); gil::get_reader_backend::type backend_file = gil::make_reader_backend(file, gil::image_read_settings()); std::ifstream in(bmp_filename.c_str(), std::ios::binary); gil::get_reader_backend::type backend_ifstream = gil::make_reader_backend(in, gil::image_read_settings()); fs::path my_path(bmp_filename); gil::get_reader_backend::type backend_wstring = gil::make_reader_backend(my_path.wstring(), gil::image_read_settings()); gil::get_reader_backend::type backend_path = gil::make_reader_backend(my_path, gil::image_read_settings()); } } void test_make_reader() { { gil::get_reader_backend::type reader_char = gil::make_reader( bmp_filename.c_str(), gil::bmp_tag(), gil::detail::read_and_no_convert()); gil::get_reader_backend::type reader_string = gil::make_reader(bmp_filename, gil::bmp_tag(), gil::detail::read_and_no_convert()); FILE* file = fopen(bmp_filename.c_str(), "rb"); gil::get_reader_backend::type reader_file = gil::make_reader(file, gil::bmp_tag(), gil::detail::read_and_no_convert()); std::ifstream in(bmp_filename.c_str(), std::ios::binary); gil::get_reader_backend::type reader_ifstream = gil::make_reader(in, gil::bmp_tag(), gil::detail::read_and_no_convert()); fs::path my_path(bmp_filename); gil::get_reader_backend::type reader_wstring = gil::make_reader(my_path.wstring(), gil::bmp_tag(), gil::detail::read_and_no_convert()); gil::get_reader_backend::type reader_path = gil::make_reader(my_path, gil::bmp_tag(), gil::detail::read_and_no_convert()); } { gil::get_reader_backend::type reader_char = gil::make_reader( bmp_filename.c_str(), gil::image_read_settings(), gil::detail::read_and_no_convert()); gil::get_reader_backend::type reader_string = gil::make_reader( bmp_filename, gil::image_read_settings(), gil::detail::read_and_no_convert()); FILE* file = fopen(bmp_filename.c_str(), "rb"); gil::get_reader_backend::type reader_file = gil::make_reader( file, gil::image_read_settings(), gil::detail::read_and_no_convert()); std::ifstream in(bmp_filename.c_str(), std::ios::binary); gil::get_reader_backend::type reader_ifstream = gil::make_reader( in, gil::image_read_settings(), gil::detail::read_and_no_convert()); fs::path my_path(bmp_filename); gil::get_reader_backend::type reader_wstring = gil::make_reader( my_path.wstring(), gil::image_read_settings(), gil::detail::read_and_no_convert()); gil::get_reader_backend::type reader_path = gil::make_reader( my_path, gil::image_read_settings(), gil::detail::read_and_no_convert()); } } void test_make_dynamic_image_reader() { { gil::get_dynamic_image_reader::type reader_char = gil::make_dynamic_image_reader(bmp_filename.c_str(), gil::bmp_tag()); gil::get_dynamic_image_reader::type reader_string = gil::make_dynamic_image_reader(bmp_filename, gil::bmp_tag()); FILE* file = fopen(bmp_filename.c_str(), "rb"); gil::get_dynamic_image_reader::type reader_file = gil::make_dynamic_image_reader(file, gil::bmp_tag()); std::ifstream in(bmp_filename.c_str(), std::ios::binary); gil::get_dynamic_image_reader::type reader_ifstream = gil::make_dynamic_image_reader(in, gil::bmp_tag()); fs::path my_path(bmp_filename); gil::get_dynamic_image_reader::type reader_wstring = gil::make_dynamic_image_reader(my_path.wstring(), gil::bmp_tag()); gil::get_dynamic_image_reader::type reader_path = gil::make_dynamic_image_reader(my_path, gil::bmp_tag()); } { gil::get_dynamic_image_reader::type reader_char = gil::make_dynamic_image_reader( bmp_filename.c_str(), gil::image_read_settings()); gil::get_dynamic_image_reader::type reader_string = gil::make_dynamic_image_reader(bmp_filename, gil::image_read_settings()); FILE* file = fopen(bmp_filename.c_str(), "rb"); gil::get_dynamic_image_reader::type reader_file = gil::make_dynamic_image_reader(file, gil::image_read_settings()); std::ifstream in(bmp_filename.c_str(), std::ios::binary); gil::get_dynamic_image_reader::type reader_ifstream = gil::make_dynamic_image_reader(in, gil::image_read_settings()); fs::path my_path(bmp_filename); gil::get_dynamic_image_reader::type reader_wstring = gil::make_dynamic_image_reader( my_path.wstring(), gil::image_read_settings()); gil::get_dynamic_image_reader::type reader_path = gil::make_dynamic_image_reader(my_path, gil::image_read_settings()); } } void test_make_writer() { // Empty files may be created, but noo image data is written. { using writer_t = gil::get_writer::type; static_assert( std::is_same::type, std::true_type>::value, ""); } { gil::get_writer::type writer_char = gil::make_writer((bmp_out + "make_test.bmp").c_str(), gil::bmp_tag()); gil::get_writer::type writer_string = gil::make_writer((bmp_out + "make_test.bmp"), gil::bmp_tag()); FILE* file = fopen((bmp_out + "make_test.bmp").c_str(), "wb"); gil::get_writer::type writer_file = gil::make_writer(file, gil::bmp_tag()); std::ofstream out((bmp_out + "make_test.bmp").c_str(), std::ios::binary); gil::get_writer::type writer_ofstream = gil::make_writer(out, gil::image_write_info()); boost::ignore_unused(writer_ofstream); fs::path my_path((bmp_out + "make_test.bmp").c_str()); gil::get_writer::type writer_wstring = gil::make_writer(my_path.wstring(), gil::bmp_tag()); gil::get_writer::type writer_path = gil::make_writer(my_path, gil::bmp_tag()); } { gil::get_writer::type writer_char = gil::make_writer((bmp_out + "make_test.bmp").c_str(), gil::image_write_info()); gil::get_writer::type writer_string = gil::make_writer((bmp_out + "make_test.bmp"), gil::image_write_info()); FILE* file = fopen((bmp_out + std::string("make_test.bmp")).c_str(), "wb"); gil::get_writer::type writer_file = gil::make_writer(file, gil::image_write_info()); std::ofstream out((bmp_out + "make_test.bmp").c_str(), std::ios::binary); gil::get_writer::type writer_ofstream = gil::make_writer(out, gil::image_write_info()); boost::ignore_unused(writer_ofstream); fs::path my_path(bmp_out + "make_test.bmp"); gil::get_writer::type writer_wstring = gil::make_writer(my_path.wstring(), gil::image_write_info()); gil::get_writer::type writer_path = gil::make_writer(my_path, gil::image_write_info()); } } void test_make_dynamic_image_writer() { // Empty files may be created, but noo image data is written. { gil::get_dynamic_image_writer::type writer_char = gil::make_dynamic_image_writer( (bmp_out + std::string("make_test.bmp")).c_str(), gil::bmp_tag()); gil::get_dynamic_image_writer::type writer_string = gil::make_dynamic_image_writer(bmp_out + "make_test.bmp", gil::bmp_tag()); FILE* file = fopen((bmp_out + std::string("make_test.bmp")).c_str(), "wb"); gil::get_dynamic_image_writer::type writer_file = gil::make_dynamic_image_writer(file, gil::bmp_tag()); std::ofstream out((bmp_out + "make_test.bmp").c_str(), std::ios::binary); gil::get_dynamic_image_writer::type writer_ofstream = gil::make_dynamic_image_writer(out, gil::bmp_tag()); boost::ignore_unused(writer_ofstream); fs::path my_path(bmp_out + "make_test.bmp"); gil::get_dynamic_image_writer::type writer_wstring = gil::make_dynamic_image_writer(my_path.wstring(), gil::bmp_tag()); gil::get_dynamic_image_writer::type writer_path = gil::make_dynamic_image_writer(my_path, gil::bmp_tag()); } { gil::get_dynamic_image_writer::type writer_char = gil::make_dynamic_image_writer( (bmp_out + std::string("make_test.bmp")).c_str(), gil::image_write_info()); gil::get_dynamic_image_writer::type writer_string = gil::make_dynamic_image_writer( bmp_out + "make_test.bmp", gil::image_write_info()); FILE* file = fopen((bmp_out + std::string("make_test.bmp")).c_str(), "wb"); gil::get_dynamic_image_writer::type writer_file = gil::make_dynamic_image_writer(file, gil::image_write_info()); std::ofstream out((bmp_out + "make_test.bmp").c_str(), std::ios::binary); gil::get_dynamic_image_writer::type writer_ofstream = gil::make_dynamic_image_writer(out, gil::image_write_info()); boost::ignore_unused(writer_ofstream); fs::path my_path(bmp_out + "make_test.bmp"); gil::get_dynamic_image_writer::type writer_wstring = gil::make_dynamic_image_writer(my_path.wstring(), gil::image_write_info()); gil::get_dynamic_image_writer::type writer_path = gil::make_dynamic_image_writer(my_path, gil::image_write_info()); } } int main(int argc, char *argv[]) { try { test_make_reader_backend(); test_make_reader(); test_make_dynamic_image_reader(); test_make_writer(); test_make_dynamic_image_writer(); } catch (std::exception const& e) { BOOST_ERROR(e.what()); } return boost::report_errors(); }