void PngFile::Save(const Image2D &image, const ColorMap &colorMap) throw(IOException) { long double normalizeFactor = image.GetMaxMinNormalizationFactor(); png_bytep *row_pointers = RowPointers(); for(unsigned long y=0;y<image.Height();++y) { for(unsigned long x=0;x<image.Width();++x) { int xa = x * PixelSize(); row_pointers[y][xa]=colorMap.ValueToColorR(image.Value(x, y) * normalizeFactor); row_pointers[y][xa+1]=colorMap.ValueToColorG(image.Value(x, y) * normalizeFactor); row_pointers[y][xa+2]=colorMap.ValueToColorB(image.Value(x, y) * normalizeFactor); row_pointers[y][xa+3]=colorMap.ValueToColorA(image.Value(x, y) * normalizeFactor); } } }
void PngFile::Save(const Image2D &image, const std::string &filename, const ColorMap &colorMap) throw(IOException) { Save(image, filename, colorMap, image.GetMaxMinNormalizationFactor()); }