From: Seven Du Date: Fri, 15 May 2015 23:22:23 +0000 (+0800) Subject: FS-7550 quick and dirty tweak for overlay, maybe need furthur tweaks but this should... X-Git-Tag: v1.6.2~614^2~34 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8e1dc361e0dd7f3458a0982dca5c6c397a8cebd9;p=thirdparty%2Ffreeswitch.git FS-7550 quick and dirty tweak for overlay, maybe need furthur tweaks but this should work with most transparent pngs --- diff --git a/src/switch_core_video.c b/src/switch_core_video.c index 4512abae8f..8cb6f320aa 100644 --- a/src/switch_core_video.c +++ b/src/switch_core_video.c @@ -480,9 +480,15 @@ SWITCH_DECLARE(void) switch_img_overlay(switch_image_t *IMG, switch_image_t *img switch_img_get_rgb_pixel(IMG, &RGB, x + j, i); switch_img_get_rgb_pixel(img, &rgb, j + xoff, i - y + yoff); - c.r = ((RGB.r * (255 - alpha)) >> 8) + ((rgb.r * alpha) >> 8); - c.g = ((RGB.g * (255 - alpha)) >> 8) + ((rgb.g * alpha) >> 8); - c.b = ((RGB.b * (255 - alpha)) >> 8) + ((rgb.b * alpha) >> 8); + if (rgb.a > 0) { + c.r = ((RGB.r * (255 - alpha)) >> 8) + ((rgb.r * alpha) >> 8); + c.g = ((RGB.g * (255 - alpha)) >> 8) + ((rgb.g * alpha) >> 8); + c.b = ((RGB.b * (255 - alpha)) >> 8) + ((rgb.b * alpha) >> 8); + } else { + c.r = RGB.r; + c.g = RGB.g; + c.b = RGB.b; + } switch_img_draw_pixel(IMG, x + j, i, &c); }