Changeset 2846
- Timestamp:
- Sep 28, 2008, 7:01:56 PM (14 years ago)
- Location:
- libpipi/trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
libpipi/trunk/pipi/context.c
r2844 r2846 71 71 pipi_save(ctx->images[ctx->nimages], file); 72 72 pipi_free(ctx->images[ctx->nimages]); 73 } 74 else if(!strcmp(cmd, "gamma")) 75 { 76 char const *val; 77 va_list ap; 78 79 va_start(ap, cmd); 80 val = va_arg(ap, char const *); 81 va_end(ap); 82 83 pipi_set_gamma(atof(val)); 73 84 } 74 85 else if(!strcmp(cmd, "dither")) -
libpipi/trunk/pipi/pipi.h
r2844 r2846 119 119 extern int pipi_save(pipi_image_t *, const char *); 120 120 121 extern void pipi_set_gamma(double); 121 122 extern pipi_pixels_t *pipi_getpixels(pipi_image_t *, pipi_format_t); 122 123 extern int pipi_get_image_width(pipi_image_t *img); -
libpipi/trunk/pipi/pixels.c
r2844 r2846 29 29 #include "pipi_internals.h" 30 30 31 #define GAMMA 1.032 33 31 static void init_tables(void); 32 33 static double global_gamma = 2.2; 34 static int done = 0; 34 35 35 36 static float u8tof32_table[256]; 36 37 static inline float u8tof32(uint8_t p) { return u8tof32_table[(int)p]; } 37 38 38 39 39 /* Return a direct pointer to an image's pixels. */ … … 153 153 if(p < 0.) d = 0.; 154 154 else if(p > 1.) d = 255; 155 else d = (int)(255.999 * pow(p, 1. / GAMMA));155 else d = (int)(255.999 * pow(p, 1. / global_gamma)); 156 156 157 157 dest[4 * (y * img->w + x) + i] = d; … … 189 189 if(p < 0.) d = 0.; 190 190 else if(p > 1.) d = 255; 191 else d = (int)(255.999 * pow(p, 1. / GAMMA));191 else d = (int)(255.999 * pow(p, 1. / global_gamma)); 192 192 193 193 dest[3 * (y * img->w + x) + i] = d; … … 252 252 } 253 253 254 void pipi_set_gamma(double g) 255 { 256 if(g > 0.) 257 { 258 global_gamma = g; 259 done = 0; 260 } 261 } 254 262 255 263 static void init_tables(void) 256 264 { 257 static int done = 0;258 265 int i; 259 266 … … 262 269 263 270 for(i = 0; i < 256; i++) 264 u8tof32_table[i] = pow((double)i / 255., GAMMA);271 u8tof32_table[i] = pow((double)i / 255., global_gamma); 265 272 266 273 done = 1; 267 274 } 275 -
libpipi/trunk/src/pipi.c
r2790 r2846 34 34 argv++; 35 35 } 36 else if(!strcmp(argv[0], "--gamma")) 37 { 38 if(argv[1] == NULL) 39 return EXIT_FAILURE; 40 if(pipi_command(ctx, "gamma", argv[1]) != 0) 41 return EXIT_FAILURE; 42 argv++; 43 } 36 44 else if(!strcmp(argv[0], "--scale")) 37 45 {
Note: See TracChangeset
for help on using the changeset viewer.