diff --git a/img/utils.c b/img/utils.c index 323de35a..3924f365 100644 --- a/img/utils.c +++ b/img/utils.c @@ -159,8 +159,11 @@ void img_multiply_alpha( Byte * src, Byte * alpha, int alpha_step, Byte * dst, int bytes) { if ( alpha_step == 0 ) { - while (bytes--) - *(dst++) = *(src++) * *(alpha ) / 255.0 + .5; + if ( *alpha < 255 ) { + while (bytes--) + *(dst++) = *(src++) * *(alpha ) / 255.0 + .5; + } else if ( src != dst ) + memcpy( dst, src, bytes); } else { while (bytes--) *(dst++) = *(src++) * *(alpha++) / 255.0 + .5;