• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Classes
  • Files
  • File List

load.cc

00001 // Copyright (C) 2009, 2010 EPITA Research and Development Laboratory (LRDE)
00002 //
00003 // This file is part of Olena.
00004 //
00005 // Olena is free software: you can redistribute it and/or modify it under
00006 // the terms of the GNU General Public License as published by the Free
00007 // Software Foundation, version 2 of the License.
00008 //
00009 // Olena is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012 // General Public License for more details.
00013 //
00014 // You should have received a copy of the GNU General Public License
00015 // along with Olena.  If not, see <http://www.gnu.org/licenses/>.
00016 //
00017 // As a special exception, you may use this file as part of a free
00018 // software project without restriction.  Specifically, if other files
00019 // instantiate templates or use macros or inline functions from this
00020 // file, or you compile this file and link it with other files to produce
00021 // an executable, this file does not by itself cause the resulting
00022 // executable to be covered by the GNU General Public License.  This
00023 // exception does not however invalidate any other reasons why the
00024 // executable file might be covered by the GNU General Public License.
00025 
00026 #include <mln/io/magick/load.hh>
00027 
00028 #include <mln/io/pbm/load.hh>
00029 #include <mln/io/pgm/load.hh>
00030 #include <mln/io/ppm/load.hh>
00031 
00032 #include <mln/data/compare.hh>
00033 
00034 #include <mln/core/image/image2d.hh>
00035 
00036 #include <mln/value/rgb8.hh>
00037 
00038 #include "tests/data.hh"
00039 
00040 
00041 int main(int /* argc */, char* argv[])
00042 {
00043   using namespace mln;
00044 
00045   /* From http://www.graphicsmagick.org/Magick++/Image.html:
00046 
00047        The InitializeMagick() function MUST be invoked before
00048        constructing any Magick++ objects.  This used to be optional,
00049        but now it is absolutely required.  This function initalizes
00050        semaphores and configuration information necessary for the
00051        software to work correctly.  Failing to invoke
00052        InitializeMagick() is likely to lead to a program crash or
00053        thrown assertion.  If the program resides in the same directory
00054        as the GraphicsMagick files, then argv[0] may be passed as an
00055        argument so that GraphicsMagick knows where its files reside,
00056        otherwise NULL may be passed and GraphicsMagick will try to use
00057        other means (if necessary).  */
00058   Magick::InitializeMagick(*argv);
00059 
00060   // Compare Milena's built-in PBM loaded and Magick++'s support for PBM.
00061   {
00062     typedef image2d<bool> I;
00063     I mln_lena;
00064     io::pbm::load(mln_lena, MLN_IMG_DIR "/tiny.pbm");
00065     I magick_lena;
00066     io::magick::load(magick_lena, MLN_IMG_DIR "/tiny.pbm");
00067     mln_assertion(mln_lena == magick_lena);
00068   }
00069 
00070   // Compare Milena's built-in PGM loaded and Magick++'s support for PGM.
00071   {
00072     typedef image2d<value::int_u8> I;
00073     I mln_lena;
00074     io::pgm::load(mln_lena, MLN_IMG_DIR "/tiny.pgm");
00075     I magick_lena;
00076     io::magick::load(magick_lena, MLN_IMG_DIR "/tiny.pgm");
00077     mln_assertion(mln_lena == magick_lena);
00078   }
00079 
00080   // Compare Milena's built-in PPM loaded and Magick++'s support for PPM.
00081   {
00082     typedef image2d<value::rgb8> I;
00083     I mln_lena;
00084     io::ppm::load(mln_lena, MLN_IMG_DIR "/tiny.ppm");
00085     I magick_lena;
00086     io::magick::load(magick_lena, MLN_IMG_DIR "/tiny.ppm");
00087     mln_assertion(mln_lena == magick_lena);
00088   }
00089 
00090 
00091   // Check Magick++'s support for PNG.
00092   {
00093     typedef image2d<value::rgb8> I;
00094     I lena_ppm;
00095     io::ppm::load(lena_ppm, MLN_IMG_DIR "/tiny.ppm");
00096     I lena_png;
00097     io::magick::load(lena_png, MLN_TESTS_IMG_DIR "/tiny.png");
00098     mln_assertion(lena_ppm == lena_png);
00099   }
00100 }

Generated on Tue Oct 4 2011 15:24:02 for Milena (Olena) by  doxygen 1.7.1