Re: Fix for 687020 and 687146

"Igor V. Melichev" <[email protected]>
Newsgroups gmane.comp.printing.ghostscript.patches
Message-ID <[email protected]>
Fine with me.

Igor.

----- Original Message ----- 
From: "Dan Coby" <[email protected]>
To: "Gs-Code-Review" <[email protected]>
Sent: Friday, November 21, 2003 5:01 AM
Subject: [gs-code-review] Fix for 687020 and 687146


>
> Fix for 687020 and 687146.  The pdfwrite device is incorrectly converting
> CalRGB color spaces into ICC color spaces.  Fix #1.
>
> Details:
>
> As Raph pointed out in the Wednesday's support call, there are actually
> two problems.
>
> 1.  We were not correctly recognizing that we can use a CalRGB color space
> for the output.  This patch corrects this problem.  One of the tests in
> that process was assuming an incorrect ordering to the transforms.  This
> fix corrects this problem.
>
> 2.  The ICC color space which is being created is not equivalent to the
> original CalRGB color space.  This results in differing colors between
> the original file and the output PDF file.  This problem is still open.
>
> Note:  I am leaving these bug reports still open since problem 2 is still
> open.
>
>
> Dan
>
>
> Index: src/gdevpdfc.c
> ===================================================================
> RCS file: /cvs/ghostscript/gs/src/gdevpdfc.c,v
> retrieving revision 1.41
> diff -u -d -r1.41 gdevpdfc.c
> --- src/gdevpdfc.c      11 Nov 2003 11:23:17 -0000      1.41
> +++ src/gdevpdfc.c      21 Nov 2003 01:42:17 -0000
> @@ -144,21 +144,22 @@
>  private cie_cache_one_step_t
>  cie_cached_abc_is_one_step(const gs_cie_abc *pcie, const gs_matrix3
> **ppmat)
>  {
> -    /* The order of steps is DecodeLMN, MatrixLMN, DecodeABC, MatrixABC.
*/
> -    if (CIE_CACHE3_IS_IDENTITY(pcie->caches.DecodeABC.caches)) {
> +    /* The order of steps is, DecodeABC, MatrixABC, DecodeLMN, MatrixLMN.
> */
> +
> +    if (CIE_CACHE3_IS_IDENTITY(pcie->common.caches.DecodeLMN)) {
>         if (pcie->MatrixABC.is_identity) {
>             *ppmat = &pcie->common.MatrixLMN;
> -           return ONE_STEP_LMN;
> +           return ONE_STEP_ABC;
>         }
>         if (pcie->common.MatrixLMN.is_identity) {
>             *ppmat = &pcie->MatrixABC;
> -           return ONE_STEP_LMN;
> +           return ONE_STEP_ABC;
>         }
>      }
> -    if (CIE_CACHE3_IS_IDENTITY(pcie->common.caches.DecodeLMN)) {
> +    if (CIE_CACHE3_IS_IDENTITY(pcie->caches.DecodeABC.caches)) {
>         if (pcie->MatrixABC.is_identity) {
>             *ppmat = &pcie->common.MatrixLMN;
> -           return ONE_STEP_ABC;
> +           return ONE_STEP_LMN;
>         }
>      }
>      return ONE_STEP_NOT;
>
> _______________________________________________
> gs-code-review mailing list
> [email protected]
> http://www.ghostscript.com/mailman/listinfo/gs-code-review
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.