Changeset 2773 for libpipi


Ignore:
Timestamp:
Aug 26, 2008, 1:39:20 AM (12 years ago)
Author:
Sam Hocevar
Message:
  • pixels.c: allow to call pipi_getpixels with PIPI_PIXELS_MASK_C.
  • pixels.c: simplify Floyd-Steinberg coefficients.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libpipi/trunk/pipi/pixels.c

    r2772 r2773  
    4949        return &img->p[type];
    5050
     51    /* Handle special cases */
     52    if(type == PIPI_PIXELS_MASK_C)
     53        return &img->p[type];
     54
    5155    /* Preliminary conversions */
    5256    if(img->last_modified == PIPI_PIXELS_RGBA_C
     
    153157                    dest[4 * (y * img->w + x) + i] = d;
    154158
    155                     e = p - u8tof32(d);
     159                    e = (p - u8tof32(d)) / 8;
    156160                    if(x < img->w - 1)
    157                         src[4 * (y * img->w + x + 1) + i] += e * .4375;
     161                        src[4 * (y * img->w + x + 1) + i] += e * 7;
    158162                    if(y < img->h - 1)
    159163                    {
    160164                        if(x > 0)
    161                             src[4 * ((y + 1) * img->w + x - 1) + i] += e * .1875;
    162                         src[4 * ((y + 1) * img->w + x) + i] += e * .3125;
     165                            src[4 * ((y + 1) * img->w + x - 1) + i] += e * 3;
     166                        src[4 * ((y + 1) * img->w + x) + i] += e * 5;
    163167                        if(x < img->w - 1)
    164                             src[4 * ((y + 1) * img->w + x + 1) + i] += e * .0625;
     168                            src[4 * ((y + 1) * img->w + x + 1) + i] += e;
    165169                    }
    166170                }
     
    189193                    dest[3 * (y * img->w + x) + i] = d;
    190194
    191                     e = p - u8tof32(d);
     195                    e = (p - u8tof32(d));
    192196                    if(x < img->w - 1)
    193                         src[4 * (y * img->w + x + 1) + i] += e * .4375;
     197                        src[4 * (y * img->w + x + 1) + i] += e * 7;
    194198                    if(y < img->h - 1)
    195199                    {
    196200                        if(x > 0)
    197                             src[4 * ((y + 1) * img->w + x - 1) + i] += e * .1875;
    198                         src[4 * ((y + 1) * img->w + x) + i] += e * .3125;
     201                            src[4 * ((y + 1) * img->w + x - 1) + i] += e * 3;
     202                        src[4 * ((y + 1) * img->w + x) + i] += e * 5;
    199203                        if(x < img->w - 1)
    200                             src[4 * ((y + 1) * img->w + x + 1) + i] += e * .0625;
     204                            src[4 * ((y + 1) * img->w + x + 1) + i] += e;
    201205                    }
    202206                }
Note: See TracChangeset for help on using the changeset viewer.