home *** CD-ROM | disk | FTP | other *** search
- #include <fstream>
-
- #include "pngdecod.h"
- #include "bmpencod.h"
-
- using namespace std ;
-
- void Usage (int argc, char *argv [])
- {
- char *program ;
- if (argc == 0)
- program = "pngdecoder" ;
- else
- program = argv [0] ;
-
- cout << program << " input-file output-file" << endl ;
- exit (1) ;
- return ;
- }
-
- main (int argc, char *argv [])
- {
- if (argc < 3)
- Usage (argc, argv) ;
-
- PngDecoder decoder ;
- for (unsigned int ii = 1 ; ii < argc - 2 ; ++ ii)
- {
- if (argv [ii][0] != '-')
- Usage (argc, argv) ;
-
- switch (argv [ii][1])
- {
- case 'v':
- decoder.SetVerbose (true) ;
- break ;
- default:
- Usage (argc, argv) ;
- }
- }
-
- ifstream in (argv [argc-2], ios::binary) ;
- if (! in)
- {
- cerr << "Cannot open file " << argv [argc-2] << endl ;
- return 1 ;
- }
- BitmapImage image ;
- try
- {
- decoder.ReadImage (in, image) ;
- }
- catch (exception &ee)
- {
- cout << "-----> " << ee.what () << endl ;
- }
-
- ofstream out (argv [argc-1], ios::binary) ;
- BmpEncoder encoder ;
- try
- {
- encoder.WriteImage (out, image) ;
- }
- catch (exception &ee)
- {
- cout << ee.what () << endl ;
- }
- return 0 ;
- }
-