Improve readability of alpha-blending sections - farbfeld - suckless image format with conversion tools
 (HTM) git clone git://git.suckless.org/farbfeld
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit a5a5706f16408ce181775d319b264d03e67819f3
 (DIR) parent 6afe09e729e3428a5317c57c8315897f7110bffa
 (HTM) Author: Laslo Hunhold <dev@frign.de>
       Date:   Fri, 14 Apr 2017 22:15:25 +0200
       
       Improve readability of alpha-blending sections
       
       Diffstat:
         M ff2jpg.c                            |       6 ++++--
         M ff2ppm.c                            |       6 ++++--
       
       2 files changed, 8 insertions(+), 4 deletions(-)
       ---
 (DIR) diff --git a/ff2jpg.c b/ff2jpg.c
       @@ -106,9 +106,11 @@ main(int argc, char *argv[])
                        for (j = 0, k = 0; j < rowlen; j += 4, k += 3) {
                                a = ntohs(row[j + 3]);
                                for (l = 0; l < 3; l++) {
       +                                /* alpha blending and 8-bit-reduction */
                                        rowout[k + l] = (a * ntohs(row[j + l]) +
       -                                                 (65535 - a) * mask[l]) /
       -                                                (257 * 65535);
       +                                                 (UINT16_MAX - a) * mask[l]) /
       +                                                (UINT16_MAX *
       +                                                 (UINT16_MAX / UINT8_MAX));
                                }
                        }
                        jpeg_write_scanlines(&jcomp, &rowout, 1);
 (DIR) diff --git a/ff2ppm.c b/ff2ppm.c
       @@ -66,9 +66,11 @@ main(int argc, char *argv[])
                        for (j = 0, k = 0; j < rowlen; j += 4, k += 3) {
                                a = ntohs(row[j + 3]);
                                for (l = 0; l < 3; l++) {
       +                                /* alpha blending and 8-bit-reduction */
                                        rowout[k + l] = (a * ntohs(row[j + l]) +
       -                                                 (65535 - a) * mask[l]) /
       -                                                (257 * 65535);
       +                                                 (UINT16_MAX - a) * mask[l]) /
       +                                                (UINT16_MAX *
       +                                                 (UINT16_MAX / UINT8_MAX));
                                }
                        }
                        if (fwrite(rowout, sizeof(uint8_t), rowoutlen, stdout) != rowoutlen) {