#include #include "colourspace.h" #include "wavelength.h" int main( int argc, char **argv ) { FILE *red, *green, *blue; double redscale = 0.0; double bluescale = 0.0; double greenscale = 0.0; int i; red = fopen( "red.txt", "w" ); green = fopen( "green.txt", "w" ); blue = fopen( "blue.txt", "w" ); for( i = 360; i < 831; i++ ) { double x, y, z; double r, g, b; wavelength_to_xyz( i, &x, &y, &z ); xyz_to_srgb( x, y, z, &r, &g, &b ); fprintf( red, "%d %f\n", i, r ); fprintf( green, "%d %f\n", i, g ); fprintf( blue, "%d %f\n", i, b ); redscale += r; greenscale += g; bluescale += b; } fclose( red ); fclose( green ); fclose( blue ); redscale = 1.0 / redscale; greenscale = 1.0 / greenscale; bluescale = 1.0 / bluescale; red = fopen( "rednorm.txt", "w" ); green = fopen( "greennorm.txt", "w" ); blue = fopen( "bluenorm.txt", "w" ); for( i = 360; i < 831; i++ ) { double x, y, z; double r, g, b; wavelength_to_xyz( i, &x, &y, &z ); xyz_to_srgb( x, y, z, &r, &g, &b ); fprintf( red, "%d %f\n", i, r * redscale ); fprintf( green, "%d %f\n", i, g * greenscale ); fprintf( blue, "%d %f\n", i, b * bluescale ); } fclose( red ); fclose( green ); fclose( blue ); return 0; }