Changeset 2678
- Timestamp:
- Aug 8, 2008, 8:07:10 PM (15 years ago)
- Location:
- libpipi/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
libpipi/trunk/examples/floodfill.c
r2676 r2678 31 31 newimg = pipi_copy(img); 32 32 pipi_free(img); 33 ret = pipi_flood_fill(newimg, atoi(argv[2]), atoi(argv[3]), 1, 0, 0 );33 ret = pipi_flood_fill(newimg, atoi(argv[2]), atoi(argv[3]), 1, 0, 0, 1); 34 34 35 35 if(!ret) pipi_save(newimg, dstname); -
libpipi/trunk/pipi/fill/floodfill.c
r2676 r2678 36 36 static void pipi_flood_fill_stack_scanline_float(pipi_pixels_t *dstp, 37 37 int x, int y, 38 float nr, float ng, float nb, 39 float or, float og, float ob );38 float nr, float ng, float nb, float na, 39 float or, float og, float ob, float oa); 40 40 static int pop (int *x,int *y, int h); 41 41 static int push(int x, int y, int h); … … 64 64 int pipi_flood_fill(pipi_image_t *src, 65 65 int px, int py, 66 float r, float g, float b )66 float r, float g, float b, float a) 67 67 { 68 68 pipi_image_t *dst = src; … … 81 81 if(src->last_modified == PIPI_PIXELS_RGBA32) { 82 82 uint32_t *dstdata; 83 unsigned char nr, ng, nb ;83 unsigned char nr, ng, nb, na; 84 84 85 85 /* Get ARGB32 pointer */ … … 90 90 ng = g*255.0f; 91 91 nb = b*255.0f; 92 na = a*255.0f; 92 93 93 94 dstp->w = w; 94 95 dstp->h = h; 95 pipi_flood_fill_stack_scanline_u32(dstp, px, py, (n r<<16)|(ng<<8)|(nb), dstdata[px+py*w]);96 pipi_flood_fill_stack_scanline_u32(dstp, px, py, (na<<24)|(nr<<16)|(ng<<8)|(nb), dstdata[px+py*w]); 96 97 97 98 } else { 98 99 int gray = (dst->last_modified == PIPI_PIXELS_Y_F); 99 100 float *dstdata; 100 float or, og, ob ;101 float or, og, ob, oa; 101 102 102 103 dstp = gray ? pipi_getpixels(dst, PIPI_PIXELS_Y_F) … … 108 109 og = dstdata[(px+py*w)*4 + 1]; 109 110 ob = dstdata[(px+py*w)*4 + 2]; 111 oa = dstdata[(px+py*w)*4 + 3]; 110 112 111 113 dstp->w = w; 112 114 dstp->h = h; 113 115 114 pipi_flood_fill_stack_scanline_float(dstp, px, py, r, g, b, or, og, ob);116 pipi_flood_fill_stack_scanline_float(dstp, px, py, r, g, b, a, or, og, ob, oa); 115 117 } 116 118 … … 178 180 static void pipi_flood_fill_stack_scanline_float(pipi_pixels_t *dstp, 179 181 int x, int y, 180 float nr, float ng, float nb, 181 float or, float og, float ob )182 float nr, float ng, float nb, float na, 183 float or, float og, float ob, float oa) 182 184 { 183 185 if((nr==or) && (ng==og) && (nb==ob)) return; … … 215 217 cur_line[x*4 + 1] = ng; 216 218 cur_line[x*4 + 2] = nb; 219 cur_line[x*4 + 3] = na; 217 220 218 221 if(!left && x > 0 && validate_pixel_f(cur_line[xm1], -
libpipi/trunk/pipi/pipi.h
r2676 r2678 84 84 85 85 extern int pipi_flood_fill(pipi_image_t *, 86 int, int, float, float, float );86 int, int, float, float, float, float); 87 87 88 88 extern pipi_image_t *pipi_dither_floydsteinberg(pipi_image_t *, pipi_scan_t);
Note: See TracChangeset
for help on using the changeset viewer.