00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include <mln/core/image/image2d.hh>
00028
00029 #include <mln/data/compare.hh>
00030
00031 #include <mln/io/magick/load.hh>
00032 #include <mln/io/magick/save.hh>
00033
00034 #include <mln/io/pbm/load.hh>
00035 #include <mln/io/pbm/save.hh>
00036
00037 #include <mln/io/pgm/load.hh>
00038 #include <mln/io/pgm/save.hh>
00039
00040 #include <mln/io/ppm/load.hh>
00041 #include <mln/io/ppm/save.hh>
00042
00043 #include "tests/data.hh"
00044
00045
00046 using namespace mln;
00047
00048
00049 template <typename T>
00050 image2d<T>
00051 test(const image2d<T>& lena_mln, const std::string& temp_filename)
00052 {
00053 point2d p(0,0);
00054
00055 T c = lena_mln(p);
00056
00057 io::magick::save(lena_mln, temp_filename);
00058 image2d<T> lena_im;
00059 io::magick::load(lena_im, temp_filename);
00060
00061 mln_assertion(lena_im(p) == c);
00062 mln_assertion(lena_im.domain() == lena_mln.domain());
00063 mln_assertion(lena_im == lena_mln);
00064
00065 return lena_im;
00066 }
00067
00068
00069 int main(int , char* argv[])
00070 {
00071 using namespace mln;
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086 Magick::InitializeMagick(*argv);
00087
00088 point2d p(0,0);
00089
00090
00091 {
00092 typedef image2d<bool> I;
00093 I lena_mln;
00094 io::pbm::load(lena_mln, MLN_IMG_DIR "/tiny.pbm");
00095 I lena_im = ::test(lena_mln, "save-tiny-temp.pbm");
00096 io::pbm::save(lena_im, "save-tiny.pbm");
00097 }
00098
00099
00100 {
00101 typedef image2d<value::int_u8> I;
00102 I lena_mln;
00103 io::pgm::load(lena_mln, MLN_IMG_DIR "/tiny.pgm");
00104 I lena_im = ::test(lena_mln, "save-tiny-temp.pgm");
00105 io::pgm::save(lena_im, "save-tiny.pgm");
00106 }
00107
00108
00109 {
00110 typedef image2d<value::rgb8> I;
00111 I lena_mln;
00112 io::ppm::load(lena_mln, MLN_IMG_DIR "/tiny.ppm");
00113 I lena_im = ::test(lena_mln, "save-tiny-temp.png");
00114 io::ppm::save(lena_im, "save-tiny.ppm");
00115 }
00116 }