diff options
author | Tor Andersson <tor@ghostscript.com> | 2008-07-01 01:22:51 +0200 |
---|---|---|
committer | Tor Andersson <tor@ghostscript.com> | 2008-07-01 01:22:51 +0200 |
commit | 8c018dd9c020e33aaf0cd520b3f89c3018dbb423 (patch) | |
tree | 539ed62a44bc224c1db97c935cda241f72e84d80 /raster/imagescale.c | |
parent | d4028cf9448d7e7b85b2c41442edbd9ab8c721cc (diff) | |
download | mupdf-8c018dd9c020e33aaf0cd520b3f89c3018dbb423.tar.xz |
Fix band height calculation bug.
Diffstat (limited to 'raster/imagescale.c')
-rw-r--r-- | raster/imagescale.c | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/raster/imagescale.c b/raster/imagescale.c index 7ce942fb..f25d4d5a 100644 --- a/raster/imagescale.c +++ b/raster/imagescale.c @@ -195,7 +195,7 @@ fz_scalepixmaptile(fz_pixmap *dst, int xoffs, int yoffs, fz_pixmap *src, int xde unsigned char *dstsamples; int y, iy, oy; int ow, oh, n; - int ydenom2 = ydenom; + int remaining; void (*srowx)(byte *src, byte *dst, int w, int denom) = nil; void (*scolx)(byte *src, byte *dst, int w, int denom) = nil; @@ -231,17 +231,17 @@ fz_scalepixmaptile(fz_pixmap *dst, int xoffs, int yoffs, fz_pixmap *src, int xde srowx(src->samples + (y + iy) * src->w * n, buf + iy * ow * n, src->w, xdenom); - scolx(buf, dstsamples + oy * dst->w * n, ow, ydenom2); + scolx(buf, dstsamples + oy * dst->w * n, ow, ydenom); } - ydenom = src->h - y; - if (ydenom) + remaining = src->h - y; + if (remaining) { - for (iy = 0; iy < ydenom; iy++) + for (iy = 0; iy < remaining; iy++) srowx(src->samples + (y + iy) * src->w * n, buf + iy * ow * n, src->w, xdenom); - scolx(buf, dstsamples + oy * dst->w * n, ow, ydenom2); + scolx(buf, dstsamples + oy * dst->w * n, ow, ydenom); } } @@ -253,17 +253,17 @@ fz_scalepixmaptile(fz_pixmap *dst, int xoffs, int yoffs, fz_pixmap *src, int xde fz_srown(src->samples + (y + iy) * src->w * n, buf + iy * ow * n, src->w, xdenom, n); - fz_scoln(buf, dstsamples + oy * dst->w * n, ow, ydenom2, n); + fz_scoln(buf, dstsamples + oy * dst->w * n, ow, ydenom, n); } - ydenom = src->h - y; - if (ydenom) + remaining = src->h - y; + if (remaining) { - for (iy = 0; iy < ydenom; iy++) + for (iy = 0; iy < remaining; iy++) fz_srown(src->samples + (y + iy) * src->w * n, buf + iy * ow * n, src->w, xdenom, n); - fz_scoln(buf, dstsamples + oy * dst->w * n, ow, ydenom2, n); + fz_scoln(buf, dstsamples + oy * dst->w * n, ow, ydenom, n); } } @@ -279,7 +279,7 @@ fz_scalepixmap(fz_pixmap **dstp, fz_pixmap *src, int xdenom, int ydenom) unsigned char *buf; int y, iy, oy; int ow, oh, n; - int ydenom2 = ydenom; + int remaining; void (*srowx)(byte *src, byte *dst, int w, int denom) = nil; void (*scolx)(byte *src, byte *dst, int w, int denom) = nil; @@ -315,17 +315,17 @@ fz_scalepixmap(fz_pixmap **dstp, fz_pixmap *src, int xdenom, int ydenom) srowx(src->samples + (y + iy) * src->w * n, buf + iy * ow * n, src->w, xdenom); - scolx(buf, dst->samples + oy * dst->w * n, dst->w, ydenom2); + scolx(buf, dst->samples + oy * dst->w * n, dst->w, ydenom); } - ydenom = src->h - y; - if (ydenom) + remaining = src->h - y; + if (remaining) { - for (iy = 0; iy < ydenom; iy++) + for (iy = 0; iy < remaining; iy++) srowx(src->samples + (y + iy) * src->w * n, buf + iy * ow * n, src->w, xdenom); - scolx(buf, dst->samples + oy * dst->w * n, dst->w, ydenom2); + scolx(buf, dst->samples + oy * dst->w * n, dst->w, ydenom); } } @@ -337,17 +337,17 @@ fz_scalepixmap(fz_pixmap **dstp, fz_pixmap *src, int xdenom, int ydenom) fz_srown(src->samples + (y + iy) * src->w * n, buf + iy * ow * n, src->w, xdenom, n); - fz_scoln(buf, dst->samples + oy * dst->w * n, dst->w, ydenom2, n); + fz_scoln(buf, dst->samples + oy * dst->w * n, dst->w, ydenom, n); } - ydenom = src->h - y; - if (ydenom) + remaining = src->h - y; + if (remaining) { - for (iy = 0; iy < ydenom; iy++) + for (iy = 0; iy < remaining; iy++) fz_srown(src->samples + (y + iy) * src->w * n, buf + iy * ow * n, src->w, xdenom, n); - fz_scoln(buf, dst->samples + oy * dst->w * n, dst->w, ydenom2, n); + fz_scoln(buf, dst->samples + oy * dst->w * n, dst->w, ydenom, n); } } |