32 #include "DGtal/base/Common.h"
33 #include "DGtal/io/Color.h"
34 #include "DGtal/io/colormaps/CColorMap.h"
35 #include "DGtal/io/colormaps/GrayscaleColorMap.h"
36 #include "DGtal/io/colormaps/HueShadeColorMap.h"
37 #include "DGtal/io/colormaps/ColorBrightnessColorMap.h"
38 #include "DGtal/io/colormaps/GradientColorMap.h"
39 #include "DGtal/io/colormaps/RandomColorMap.h"
40 #include "DGtal/io/boards/Board2D.h"
41 #include "Board/PSFonts.h"
45 using namespace DGtal;
46 using namespace LibBoard;
51 template <
typename TColorMap>
52 void addColorMapSample(
const char * name,
53 const TColorMap & aColorMap,
54 const typename TColorMap::Value step,
59 typedef typename TColorMap::Value Value;
65 for ( Value x = aColorMap.min(); x <= aColorMap.max(); x += step ) {
69 static_cast<double>( step ),
74 bool testGrayscaleColorMap()
76 unsigned int nbok = 0;
86 <<
"," <<
int(c0.
green()) <<
"," <<
int(c0.
blue()) << std::endl;
87 nbok += ( c0 == Color::Black );
89 Color c128 = cmap(128);
91 cerr << int(c128.
red())
92 <<
"," <<
int(c128.
green()) <<
"," <<
int(c128.
blue()) << std::endl;
93 nbok += ( c128 ==
Color(128,128,128) );
95 Color c255 = cmap(255);
97 cerr << int(c255.
red())
98 <<
"," <<
int(c255.
green()) <<
"," <<
int(c255.
blue()) << std::endl;
99 nbok += ( c255 == Color::White );
108 cerr << int(c0.
red())
109 <<
"," <<
int(c0.
green()) <<
"," <<
int(c0.
blue()) << std::endl;
110 nbok += ( c0 == Color::Black );
112 Color c255 = cmap(128);
114 cerr << int(c255.
red())
115 <<
"," <<
int(c255.
green()) <<
"," <<
int(c255.
blue()) << std::endl;
116 nbok += ( c255 == Color::White );
125 <<
"," <<
int(c.
green()) <<
"," <<
int(c.
blue()) << std::endl;
126 nbok += (c == Color::White);
129 trace.
info() <<
"Should be around 127,127,127: ";
131 <<
"," <<
int(c.
green()) <<
"," <<
int(c.
blue()) << std::endl;
142 bool res1 = testGrayscaleColorMap();
143 trace.
emphase() << ( res1 ?
"Passed." :
"Error." ) << endl;
147 addColorMapSample(
"Grayscale", cmap_gray, 1, board );
150 addColorMapSample(
"Brightness", cmap_red, 1, board );
153 addColorMapSample(
"Bright (Blue)", cmap_blue, 1, board );
156 addColorMapSample(
"HueShade", cmap_hsv, 1, board );
159 addColorMapSample(
"HueShade (2x)", cmap_cyclic5, 1, board );
162 addColorMapSample(
"HueShade (10x)", cmap_cyclic10, 1, board );
165 cmap_random.addColor(Color::Red);
166 cmap_random.addColor(Color::Blue);
167 cmap_random.addColor(Color::Yellow);
169 const int yellow = DGTAL_RGB2INT(255,255,0);
170 const int red = DGTAL_RGB2INT(255,0,0);
172 addColorMapSample(
"Gradient (Y->R)", cmap_gradient, 1, board );
175 cmap_grad3.addColor( Color::Green );
176 cmap_grad3.addColor( Color::Yellow );
177 cmap_grad3.addColor( Color::Red );
178 addColorMapSample(
"Gradient (G->Y->R)", cmap_grad3, 1, board );
180 cmap_grad3.clearColors();
181 cmap_grad3.addColor( Color::Blue );
182 cmap_grad3.addColor( Color::White );
183 cmap_grad3.addColor( Color::Red );
184 addColorMapSample(
"Gradient (B->W->R)", cmap_grad3, 1, board );
187 addColorMapSample(
"Gradient (Cool)", cool_gradient, 1, board );
190 addColorMapSample(
"Gradient (Copper)", copper_gradient, 1, board );
193 addColorMapSample(
"Gradient (Hot)", hot_gradient, 1, board );
196 addColorMapSample(
"Gradient (Jet)", jet_gradient, 1, board );
198 addColorMapSample(
"Gradient (Spring)",
202 addColorMapSample(
"Gradient (Summer)",
206 addColorMapSample(
"Gradient (Autumn)",
210 addColorMapSample(
"Gradient (Winter)",
214 addColorMapSample(
"Random", cmap_random, 1, board );
216 board.
saveEPS(
"colormaps.eps" );
217 board.
saveSVG(
"colormaps.svg" );
221 board.saveCairo(
"colormaps-cairo.ps", Board2D::CairoPS);
224 return ( res1 ) ? 0 : 1;