Changeset 2260
- Timestamp:
- Mar 11, 2008, 3:56:27 PM (15 years ago)
- Location:
- libpipi/trunk/pipi
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
libpipi/trunk/pipi/pipi.h
r2244 r2260 35 35 extern int pipi_getgray(pipi_image_t const *img, int x, int y, int *g); 36 36 extern int pipi_getpixel(pipi_image_t const *img, 37 int x, int y, int *r, int *g, int *b); 38 extern int pipi_setpixel(pipi_image_t *img, int x, int y, int r, int g, int b); 37 int x, int y, double *r, double *g, double *b); 38 extern int pipi_setpixel(pipi_image_t *img, int x, int y, 39 double r, double g, double b); 39 40 40 41 extern pipi_image_t *pipi_resize(pipi_image_t const *, int, int); -
libpipi/trunk/pipi/pixels.c
r2247 r2260 26 26 #include <math.h> 27 27 28 #include "pipi.h" 28 29 #include "pipi_internals.h" 29 #include "pipi.h"30 30 31 #define C2I(p) ( (int)255.999*pow(((double)p)/255., 2.2))32 #define I2C(p) ((int)255.999*pow(((double)p) /255., 1./2.2))31 #define C2I(p) (pow(((double)p)/255., 2.2)) 32 #define I2C(p) ((int)255.999*pow(((double)p), 1./2.2)) 33 33 34 34 int pipi_getgray(pipi_image_t const *img, int x, int y, int *g) … … 46 46 47 47 int pipi_getpixel(pipi_image_t const *img, 48 int x, int y, int *r, int *g, int*b)48 int x, int y, double *r, double *g, double *b) 49 49 { 50 50 uint8_t *pixel; … … 52 52 if(x < 0 || y < 0 || x >= img->width || y >= img->height) 53 53 { 54 *r = 255; 55 *g = 255; 56 *b = 255; 54 *r = *g = *b = 1.; 57 55 return -1; 58 56 } … … 67 65 } 68 66 69 int pipi_setpixel(pipi_image_t *img, int x, int y, int r, int g, intb)67 int pipi_setpixel(pipi_image_t *img, int x, int y, double r, double g, double b) 70 68 { 71 69 uint8_t *pixel; -
libpipi/trunk/pipi/resize.c
r2246 r2260 23 23 #include <string.h> 24 24 25 #include "pipi.h" 25 26 #include "pipi_internals.h" 26 #include "pipi.h"27 27 28 28 pipi_image_t *pipi_resize(pipi_image_t const *src, int w, int h) 29 29 { 30 int*aline, *line;30 double *aline, *line; 31 31 pipi_image_t *dst; 32 32 int x, y, x0, y0, sw, dw, sh, dh, remy; … … 37 37 dw = dst->width; dh = dst->height; 38 38 39 aline = malloc(3 * dw * sizeof( int));40 line = malloc(3 * dw * sizeof( int));39 aline = malloc(3 * dw * sizeof(double)); 40 line = malloc(3 * dw * sizeof(double)); 41 41 42 memset(line, 0, 3 * dw * sizeof( int));42 memset(line, 0, 3 * dw * sizeof(double)); 43 43 remy = 0; 44 44 … … 47 47 int toty = 0, ny; 48 48 49 memset(aline, 0, 3 * dw * sizeof( int));49 memset(aline, 0, 3 * dw * sizeof(double)); 50 50 51 51 while(toty < sh) … … 53 53 if(remy == 0) 54 54 { 55 intr = 0, g = 0, b = 0;55 double r = 0, g = 0, b = 0; 56 56 int remx = 0; 57 57 58 58 for(x = 0, x0 = 0; x < dst->width; x++) 59 59 { 60 intar = 0, ag = 0, ab = 0;60 double ar = 0, ag = 0, ab = 0; 61 61 int totx = 0, nx; 62 62
Note: See TracChangeset
for help on using the changeset viewer.