diff options
-rw-r--r-- | fitz/fitz_draw.h | 1 | ||||
-rw-r--r-- | fitzdraw/imageunpack.c | 4 | ||||
-rw-r--r-- | mupdf/pdf_image.c | 1 |
3 files changed, 6 insertions, 0 deletions
diff --git a/fitz/fitz_draw.h b/fitz/fitz_draw.h index 60eeafe2..7e3baa9e 100644 --- a/fitz/fitz_draw.h +++ b/fitz/fitz_draw.h @@ -99,6 +99,7 @@ extern void (*fz_loadtile1)(FZ_BYTE*, int sw, FZ_BYTE*, int dw, int w, int h, in extern void (*fz_loadtile2)(FZ_BYTE*, int sw, FZ_BYTE*, int dw, int w, int h, int pad); extern void (*fz_loadtile4)(FZ_BYTE*, int sw, FZ_BYTE*, int dw, int w, int h, int pad); extern void (*fz_loadtile8)(FZ_BYTE*, int sw, FZ_BYTE*, int dw, int w, int h, int pad); +extern void (*fz_loadtile16)(FZ_BYTE*, int sw, FZ_BYTE*, int dw, int w, int h, int pad); extern void (*fz_srown)(FZ_BYTE *src, FZ_BYTE *dst, int w, int denom, int n); extern void (*fz_srow1)(FZ_BYTE *src, FZ_BYTE *dst, int w, int denom); diff --git a/fitzdraw/imageunpack.c b/fitzdraw/imageunpack.c index 15d060f8..4df495ba 100644 --- a/fitzdraw/imageunpack.c +++ b/fitzdraw/imageunpack.c @@ -94,6 +94,7 @@ static void decodetile(fz_pixmap *pix, int skip, float *decode) #define ttwo(buf,x) ((buf[x >> 2] >> ( ( 3 - (x & 3) ) << 1 ) ) & 3 ) * 85 #define tnib(buf,x) ((buf[x >> 1] >> ( ( 1 - (x & 1) ) << 2 ) ) & 15 ) * 17 #define toct(buf,x) (buf[x]) +#define thex(buf,x) (buf[x << 1]) static byte t1pad0[256][8]; static byte t1pad1[256][16]; @@ -224,10 +225,13 @@ static void loadtile4(byte * restrict src, int sw, byte * restrict dst, int dw, TILE(tnib) static void loadtile8(byte * restrict src, int sw, byte * restrict dst, int dw, int w, int h, int pad) TILE(toct) +static void loadtile16(byte * restrict src, int sw, byte * restrict dst, int dw, int w, int h, int pad) +TILE(thex) void (*fz_decodetile)(fz_pixmap *pix, int skip, float *decode) = decodetile; void (*fz_loadtile1)(byte*, int sw, byte*, int dw, int w, int h, int pad) = loadtile1; void (*fz_loadtile2)(byte*, int sw, byte*, int dw, int w, int h, int pad) = loadtile2; void (*fz_loadtile4)(byte*, int sw, byte*, int dw, int w, int h, int pad) = loadtile4; void (*fz_loadtile8)(byte*, int sw, byte*, int dw, int w, int h, int pad) = loadtile8; +void (*fz_loadtile16)(byte*, int sw, byte*, int dw, int w, int h, int pad) = loadtile16; diff --git a/mupdf/pdf_image.c b/mupdf/pdf_image.c index 8674cca9..fe6aab7a 100644 --- a/mupdf/pdf_image.c +++ b/mupdf/pdf_image.c @@ -499,6 +499,7 @@ pdf_loadtile(fz_image *img, fz_pixmap *tile) case 2: tilefunc = fz_loadtile2; break; case 4: tilefunc = fz_loadtile4; break; case 8: tilefunc = fz_loadtile8; break; + case 16: tilefunc = fz_loadtile16; break; default: return fz_throw("rangecheck: unsupported bit depth: %d", src->bpc); } |