Changeset 3415 for libpipi/trunk/pipi/resize.c
- Timestamp:
- Apr 21, 2009, 1:56:41 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libpipi/trunk/pipi/resize.c
r3398 r3415 124 124 } 125 125 126 pipi_image_t *pipi_crop(pipi_image_t *src, int w, int h, int dx, int dy) 127 { 128 float *srcdata, *dstdata; 129 pipi_image_t *dst; 130 pipi_pixels_t *srcp, *dstp; 131 int y, off, len; 132 133 srcp = pipi_get_pixels(src, PIPI_PIXELS_RGBA_F32); 134 srcdata = (float *)srcp->pixels; 135 136 dst = pipi_new(w, h); 137 dstp = pipi_get_pixels(dst, PIPI_PIXELS_RGBA_F32); 138 dstdata = (float *)dstp->pixels; 139 140 off = dx; 141 len = w; 142 143 if(dx < 0) 144 { 145 len += dx; 146 dx = 0; 147 } 148 149 if(dx + len > srcp->w) 150 len = srcp->w - dx; 151 152 if(len > 0) 153 { 154 for(y = 0; y < h; y++) 155 { 156 if(y + dy < 0 || y + dy >= srcp->h) 157 continue; 158 159 memcpy(dstdata + y * w * 4, 160 srcdata + ((y + dy) * srcp->w + dx) * 4, 161 len * 4 * sizeof(float)); 162 } 163 } 164 165 return dst; 166 } 167
Note: See TracChangeset
for help on using the changeset viewer.