[hackers] [sent] Fix alpha blending || FRIGN

From: <git_AT_suckless.org>
Date: Fri, 5 Feb 2016 15:38:53 +0100 (CET)

commit 68ac6486b106751f79e2ff2f4d53e56843521ce5
Author: FRIGN <dev_AT_frign.de>
AuthorDate: Sun Jan 31 11:05:00 2016 +0100
Commit: Markus Teich <markus.teich_AT_stusta.mhn.de>
CommitDate: Fri Feb 5 15:35:59 2016 +0100

    Fix alpha blending
    
    - "/ 257", because 255 * 257 = UINT16_MAX
    - "/ 255", because that's the maximum possible RGB value

diff --git a/sent.c b/sent.c
index cdc637f..a397942 100644
--- a/sent.c
+++ b/sent.c
_AT_@ -258,15 +258,15 @@ int ffread(Image *img)
                         nbytes += count;
                 }
                 for (x = 0; x < rowlen / 2; x += 4) {
- fg_r = ntohs(row[x + 0]) / 256;
- fg_g = ntohs(row[x + 1]) / 256;
- fg_b = ntohs(row[x + 2]) / 256;
- opac = ntohs(row[x + 3]) / 256;
+ fg_r = ntohs(row[x + 0]) / 257;
+ fg_g = ntohs(row[x + 1]) / 257;
+ fg_b = ntohs(row[x + 2]) / 257;
+ opac = ntohs(row[x + 3]) / 257;
                         /* blend opaque part of image data with window background color to
                          * emulate transparency */
- img->buf[off++] = (fg_r * opac + bg_r * (255 - opac)) / 256;
- img->buf[off++] = (fg_g * opac + bg_g * (255 - opac)) / 256;
- img->buf[off++] = (fg_b * opac + bg_b * (255 - opac)) / 256;
+ img->buf[off++] = (fg_r * opac + bg_r * (255 - opac)) / 255;
+ img->buf[off++] = (fg_g * opac + bg_g * (255 - opac)) / 255;
+ img->buf[off++] = (fg_b * opac + bg_b * (255 - opac)) / 255;
                 }
         }
 
Received on Fri Feb 05 2016 - 15:38:53 CET

This archive was generated by hypermail 2.3.0 : Fri Feb 05 2016 - 15:48:15 CET