// This may look like C code, but it is really -*- C++ -*- // // Copyright Bob Friesenhahn, 1999, 2000, 2003 // // Test STL readImages and writeImages functions // #include #include #include #include #include using namespace std; using namespace Magick; int main( int /*argc*/, char ** argv) { // Initialize ImageMagick install location for Windows InitializeMagick(*argv); int failures=0; try { string srcdir(""); if(getenv("SRCDIR") != 0) srcdir = getenv("SRCDIR"); // // Test readImages and writeImages // list first; readImages( &first, srcdir + "test_image_anim.miff" ); if ( first.size() != 6 ) { ++failures; cout << "Line: " << __LINE__ << " Read images failed, number of frames is " << first.size() << " rather than 6 as expected." << endl; } writeImages( first.begin(), first.end(), "testmagick_anim_out.miff" ); list second; readImages( &second, "testmagick_anim_out.miff" ); list::iterator firstIter = first.begin(); list::iterator secondIter = second.begin(); while( firstIter != first.end() && secondIter != second.end() ) { if ( firstIter->scene() != secondIter->scene() ) { ++failures; cout << "Line: " << __LINE__ << " Image scene: " << secondIter->scene() << " is not equal to original " << firstIter->scene() << endl; } if ( firstIter->rows() != secondIter->rows() ) { ++failures; cout << "Line: " << __LINE__ << " Image rows " << secondIter->rows() << " are not equal to original " << firstIter->rows() << endl; } if ( firstIter->columns() != secondIter->columns() ) { ++failures; cout << "Line: " << __LINE__ << " Image columns " << secondIter->columns() << " are not equal to original " << firstIter->rows() << endl; } firstIter++; secondIter++; } } catch( Exception &error_ ) { cout << "Caught exception: " << error_.what() << endl; return 1; } catch( exception &error_ ) { cout << "Caught exception: " << error_.what() << endl; return 1; } if ( failures ) { cout << failures << " failures" << endl; return 1; } return 0; }