33 #include "DGtal/io/Color.h"
43 template<
typename I,
typename C>
46 const Functor & aFunctor,
bool saveASCII,
bool topbotomOrder)
48 BOOST_STATIC_ASSERT(I::Domain::dimension == 2);
51 typename I::Domain::Vector ext = aImage.extent();
52 typename I::Domain domain = aImage.domain();
53 typename I::Value val;
55 out.open(filename.c_str());
64 out <<
"#DGtal PNM Writer"<<endl<<endl;
65 out << ext[0]<<
" "<< ext[1]<<endl;
71 for(
typename I::Domain::ConstIterator it = domain.begin(), itend=domain.end();
76 val = aImage( (*it) );
78 out << ((int) aFunctor(val) )<<
" ";
80 out << ((char)((
int) aFunctor(val)));
84 typename I::Domain::Point ptUpper= domain.upperBound();
88 typename I::Domain::Point ptUpperY= *itY;
94 val = aImage( (*it) );
96 out << ((int) aFunctor(val))<<
" ";
98 out << ((char) aFunctor(val));
111 template<
typename I,
typename C>
118 BOOST_STATIC_ASSERT(I::Domain::dimension == 3);
121 typename I::Domain::Vector ext = aImage.extent();
122 typename I::Domain domain(aImage.lowerBound(), aImage.upperBound());
123 typename I::Value val;
126 out.open(filename.c_str());
129 out <<
"P2-3D"<<endl;
130 out <<
"#DGtal PNM Writer"<<endl<<endl;
131 out << ext[0]<<
" "<< ext[1]<<
" "<< ext[2]<<endl;
136 for(
typename I::Domain::ConstIterator it = domain.begin(), itend=domain.end();
141 val = aImage( (*it) );
142 out << ((int) aFunctor( val ))<<
" ";