From 57348a2f285c0d4620c530077d884a0b09d0a330 Mon Sep 17 00:00:00 2001 From: Sebastian Rasmussen Date: Sat, 28 Feb 2009 18:20:17 +0100 Subject: Properly handle alternate colorspaces. --- apps/pdftool.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/apps/pdftool.c b/apps/pdftool.c index b6ccf21d..ee7d3d2b 100644 --- a/apps/pdftool.c +++ b/apps/pdftool.c @@ -1221,13 +1221,24 @@ gatherimages(int page, fz_obj *pageref, fz_obj *pageobj, fz_obj *dict) if (fz_isname(cs) && (!strcmp(fz_toname(cs), "DeviceN") || !strcmp(fz_toname(cs), "Separation"))) { - altcs = fz_arrayget(cses, 2); - if (altcs) - { - error = pdf_resolve(&altcs, src); - if (error) - return fz_rethrow(error, "cannot resolve indirect image alternate colorspace name (%d %d R)", fz_tonum(ref), fz_togen(ref)); - } + altcs = fz_arrayget(cses, 2); + if (altcs) + { + error = pdf_resolve(&altcs, src); + if (error) + return fz_rethrow(error, "cannot resolve indirect image alternate colorspace name (%d %d R)", fz_tonum(ref), fz_togen(ref)); + } + + if (fz_isarray(altcs)) + { + altcs = fz_arrayget(altcs, 0); + if (altcs) + { + error = pdf_resolve(&altcs, src); + if (error) + return fz_rethrow(error, "cannot resolve indirect image alternate colorspace name (%d %d R)", fz_tonum(ref), fz_togen(ref)); + } + } } } -- cgit v1.2.3