diff options
author | Robin Watts <Robin.Watts@artifex.com> | 2019-07-18 15:47:54 +0100 |
---|---|---|
committer | Robin Watts <Robin.Watts@artifex.com> | 2019-07-18 19:38:09 +0100 |
commit | e5faf407dcb7c9679537313cebd55a747098f6f8 (patch) | |
tree | c960b197903e1032aba602f6143b5348c81db5b5 /base/gsicc_manage.c | |
parent | c0e588f679fca92d92045049fd60846b57da899c (diff) | |
download | ghostpdl-e5faf407dcb7c9679537313cebd55a747098f6f8.tar.gz |
Bug 701296: Fix Interpolation in Indexed spaces with UseFastColor
The get_color_handler logic was being called with pcs = Indexed, and
so doing pcs = pcs->base_space. Then it was checking that pcs == the
concrete space, seeing that it was, and deciding it could then use
the device colors direct. The problem is that pcs->base_space is a
greyscale space, so when running to (say) an rgb output, we have the
wrong color data.
We now check for the number of components being as we expect, and
for the space being one of our 'default' ones before choosing to
take the 'fast' route.
Diffstat (limited to 'base/gsicc_manage.c')
-rw-r--r-- | base/gsicc_manage.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/base/gsicc_manage.c b/base/gsicc_manage.c index f977b649d..9de2a5218 100644 --- a/base/gsicc_manage.c +++ b/base/gsicc_manage.c @@ -497,6 +497,19 @@ gsicc_get_default_type(cmm_profile_t *profile_data) } bool +gsicc_is_default_profile(cmm_profile_t *profile_data) +{ + switch (profile_data->default_match) { + case DEFAULT_GRAY: + case DEFAULT_RGB: + case DEFAULT_CMYK: + return true; + default: + return false; + } +} + +bool gsicc_profile_from_ps(cmm_profile_t *profile_data) { switch ( profile_data->default_match ) { |