-
Notifications
You must be signed in to change notification settings - Fork 0
/
ColormapToImage.cpp
39 lines (29 loc) · 1.08 KB
/
ColormapToImage.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "ColormapToImage.h"
ColormapToImage::ColormapToImage(std::string fileName, int width, int height, std::vector<double> LVals, std::vector<double> aVals, std::vector<double> bVals) {
FILE *imageFile;
ColorSpace::Rgb rgb;
imageFile=fopen((fileName + ".ppm").c_str(),"wb");
if(imageFile==NULL){
perror("ERROR: Cannot open output file");
exit(EXIT_FAILURE);
}
// std::cout << width << "\n" << height << "\n" << LVals.size();
fprintf(imageFile,"P3 ");
fprintf(imageFile,"%d %d ", int(LVals.size()*width), height);
fprintf(imageFile,"255\n");
for(int i = 0; i < height; i++) {
for(int j = 0; j < LVals.size(); j++){
ColorSpace::Lab lab(LVals[j], aVals[j], bVals[j]);
lab.ToRgb(&rgb);
int r = abs(rgb.r);
int g = abs(rgb.g);
int b = abs(rgb.b);
for(int k = 0; k < width; k++) {
fprintf(imageFile, "%d %d %d ", r, g, b);
}
}
fprintf(imageFile, "\n");
}
fclose(imageFile);
}
ColormapToImage:: ~ColormapToImage() {}