33 #include "DGtal/io/Color.h"
43 template<
typename I,
typename C>
46 const Functor & aFunctor,
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());
59 out <<
"#DGtal PNM Writer"<<endl<<endl;
60 out << ext[0]<<
" "<< ext[1]<<endl;
67 for(
typename I::Domain::ConstIterator it = domain.begin(), itend=domain.end();
71 val = aImage( (*it) );
72 col = aFunctor( val );
73 out << (int)col.
red()<<
" "<<(int)col.
green()<<
" "<<(int)col.
blue()<<
" ";
78 typename I::Domain::Point ptUpper= domain.upperBound();
81 itYend=domain.subRange(1, ptUpper).rend(); itY!=itYend; ++itY)
83 typename I::Domain::Point ptUpperY= *itY;
86 itend=domain.subRange(0, ptUpperY).end();
90 val = aImage( (*it) );
91 col = aFunctor( val );
92 out << (int)col.
red()<<
" "<<(int)col.
green()<<
" "<<(int)col.
blue()<<
" ";
103 template<
typename I,
typename C>
108 BOOST_STATIC_ASSERT(I::Domain::dimension == 3);
111 typename I::Domain::Vector ext = aImage.extent();
112 typename I::Domain domain(aImage.lowerBound(), aImage.upperBound());
113 typename I::Value val;
116 out.open(filename.c_str());
119 out <<
"P3-3D"<<endl;
120 out <<
"#DGtal PNM Writer"<<endl<<endl;
121 out << ext[0]<<
" "<< ext[1]<<
" "<< ext[2]<<endl;
126 for(
typename I::Domain::ConstIterator it = domain.begin(), itend=domain.end();
131 val = aImage( (*it) );
132 col = aFunctor( val );
133 out << (int)col.
red()<<
" "<<(int)col.
green()<<
" "<<(int)col.
blue()<<
" "; }