|
@@ -28,7 +28,6 @@ pipi_image_t *pipi_merge(pipi_image_t *img1, pipi_image_t *img2, double t) |
|
|
pipi_image_t *dst; |
|
|
pipi_image_t *dst; |
|
|
pipi_pixels_t *img1p, *img2p, *dstp; |
|
|
pipi_pixels_t *img1p, *img2p, *dstp; |
|
|
float *img1data, *img2data, *dstdata; |
|
|
float *img1data, *img2data, *dstdata; |
|
|
double t2; |
|
|
|
|
|
int x, y, w, h; |
|
|
int x, y, w, h; |
|
|
|
|
|
|
|
|
if(img1->w != img2->w || img1->h != img2->h) |
|
|
if(img1->w != img2->w || img1->h != img2->h) |
|
@@ -38,7 +37,6 @@ pipi_image_t *pipi_merge(pipi_image_t *img1, pipi_image_t *img2, double t) |
|
|
t = 0.0; |
|
|
t = 0.0; |
|
|
else if(t > 1.0) |
|
|
else if(t > 1.0) |
|
|
t = 1.0; |
|
|
t = 1.0; |
|
|
t2 = 1.0 - t; |
|
|
|
|
|
|
|
|
|
|
|
w = img1->w; |
|
|
w = img1->w; |
|
|
h = img1->h; |
|
|
h = img1->h; |
|
@@ -57,22 +55,24 @@ pipi_image_t *pipi_merge(pipi_image_t *img1, pipi_image_t *img2, double t) |
|
|
for(x = 0; x < w; x++) |
|
|
for(x = 0; x < w; x++) |
|
|
{ |
|
|
{ |
|
|
float p, q; |
|
|
float p, q; |
|
|
|
|
|
double t1 = t * img2data[4 * (y * w + x) + 3]; |
|
|
|
|
|
double t2 = 1.0 - t1; |
|
|
|
|
|
|
|
|
p = img1data[4 * (y * w + x)]; |
|
|
p = img1data[4 * (y * w + x)]; |
|
|
q = img2data[4 * (y * w + x)]; |
|
|
q = img2data[4 * (y * w + x)]; |
|
|
dstdata[4 * (y * w + x)] = t * p + t2 * q; |
|
|
|
|
|
|
|
|
dstdata[4 * (y * w + x)] = t2 * p + t1 * q; |
|
|
|
|
|
|
|
|
p = img1data[4 * (y * w + x) + 1]; |
|
|
p = img1data[4 * (y * w + x) + 1]; |
|
|
q = img2data[4 * (y * w + x) + 1]; |
|
|
q = img2data[4 * (y * w + x) + 1]; |
|
|
dstdata[4 * (y * w + x) + 1] = t * p + t2 * q; |
|
|
|
|
|
|
|
|
dstdata[4 * (y * w + x) + 1] = t2 * p + t1 * q; |
|
|
|
|
|
|
|
|
p = img1data[4 * (y * w + x) + 2]; |
|
|
p = img1data[4 * (y * w + x) + 2]; |
|
|
q = img2data[4 * (y * w + x) + 2]; |
|
|
q = img2data[4 * (y * w + x) + 2]; |
|
|
dstdata[4 * (y * w + x) + 2] = t * p + t2 * q; |
|
|
|
|
|
|
|
|
dstdata[4 * (y * w + x) + 2] = t2 * p + t1 * q; |
|
|
|
|
|
|
|
|
p = img1data[4 * (y * w + x) + 3]; |
|
|
p = img1data[4 * (y * w + x) + 3]; |
|
|
q = img2data[4 * (y * w + x) + 3]; |
|
|
q = img2data[4 * (y * w + x) + 3]; |
|
|
dstdata[4 * (y * w + x) + 3] = t * p + t2 * q; |
|
|
|
|
|
|
|
|
dstdata[4 * (y * w + x) + 3] = t2 * p + t1 * q; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|