Ignore:
Timestamp:
Aug 4, 2008, 7:23:59 PM (12 years ago)
Author:
Sam Hocevar
Message:
  • Dithering algorithms no longer modify the original image.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libpipi/trunk/pipi/dither/ostromoukhov.c

    r2666 r2670  
    6767};
    6868
    69 pipi_image_t *pipi_dither_ostromoukhov(pipi_image_t *src, pipi_scan_t scan)
     69pipi_image_t *pipi_dither_ostromoukhov(pipi_image_t *img, pipi_scan_t scan)
    7070{
    7171    pipi_image_t *dst;
    72     pipi_pixels_t *srcp, *dstp;
    73     float *srcdata, *dstdata;
     72    pipi_pixels_t *dstp;
     73    float *dstdata;
    7474    int x, y, w, h;
    7575
    76     w = src->w;
    77     h = src->h;
     76    w = img->w;
     77    h = img->h;
    7878
    79     srcp = pipi_getpixels(src, PIPI_PIXELS_Y_F);
    80     srcdata = (float *)srcp->pixels;
    81 
    82     dst = pipi_new(w, h);
     79    dst = pipi_copy(img);
    8380    dstp = pipi_getpixels(dst, PIPI_PIXELS_Y_F);
    8481    dstdata = (float *)dstp->pixels;
     
    9693            s = reverse ? -1 : 1;
    9794
    98             p = srcdata[y * w + x2];
     95            p = dstdata[y * w + x2];
    9996            q = p < 0.5 ? 0. : 1.;
    10097            dstdata[y * w + x2] = q;
     
    107104
    108105            if(x < w - 1)
    109                 srcdata[y * w + x2 + s] += e * table[i][0];
     106                dstdata[y * w + x2 + s] += e * table[i][0];
    110107            if(y < h - 1)
    111108            {
    112109                if(x > 0)
    113                     srcdata[(y + 1) * w + x2 - s] += e * table[i][1];
    114                 srcdata[(y + 1) * w + x2] += e * table[i][2];
     110                    dstdata[(y + 1) * w + x2 - s] += e * table[i][1];
     111                dstdata[(y + 1) * w + x2] += e * table[i][2];
    115112            }
    116113        }
Note: See TracChangeset for help on using the changeset viewer.