Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 6.3.2
    • Fix Version/s: 6.3.3
    • Component/s: Colour
    • Labels:
      None
    • Environment:
      any

      Description

      The PDF in question contains some vector graphics on the second page. The colour space is DeviceN [cyan, Magenta, yellow], uses a type 4 function for the tint and the alternative colour space is CMYK. The functin 4 is parsed and executed correctly which is nice to see.

      However the color array shouldn't be reversed or at least it rendered correctly if not revered. There is some code around detecting cymk colour and applying some fuzzy logic to process a three channel colour as deviceCMYK. I'll need to go back and find the related bugs. I fix should be possible just need to avoid breaking something else.

        Activity

        Patrick Corless created issue -
        Patrick Corless made changes -
        Field Original Value New Value
        Support Case References Support Case 14455:- https://icesoft.my.salesforce.com/5000g000024MDal
        Patrick Corless made changes -
        Fix Version/s 6.3.3 [ 13282 ]
        Patrick Corless made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Patrick Corless made changes -
        Summary DeviceN color space reveral DeviceN color space reversal
        Hide
        Patrick Corless added a comment -

        Finally cracked this nut. The issue was partly in how we handle the Device colour space with regards to colour names and the other was how we order the colour data in the Type 3 Shading implementation. The DeviceN color space was originally setup for the content parser where colour data is parsed in reverse so we do a lot of revering colour data in various ways all over the code base.

        I might take a little time and clean this up as well.

        Show
        Patrick Corless added a comment - Finally cracked this nut. The issue was partly in how we handle the Device colour space with regards to colour names and the other was how we order the colour data in the Type 3 Shading implementation. The DeviceN color space was originally setup for the content parser where colour data is parsed in reverse so we do a lot of revering colour data in various ways all over the code base. I might take a little time and clean this up as well.
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #53124 Wed Dec 11 21:05:44 MST 2019 patrick.corless PDF-1306 fixes reversed colour order with some DeviceN gradients.
        Files Changed
        Commit graph MODIFY /icepdf/trunk/icepdf/core/core-awt/src/main/java/org/icepdf/core/pobjects/graphics/ShadingType3Pattern.java
        Commit graph MODIFY /icepdf/trunk/icepdf/core/core-awt/src/main/java/org/icepdf/core/pobjects/graphics/DeviceN.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #53125 Wed Dec 11 21:07:11 MST 2019 patrick.corless PDF-1306 refactor to normalize our colour[] ordering,  no more madness
        of reversing arrays multiple times.  RGB, cmyk and other can no all
        assumed to be in the order of the colourspace definition.
        Files Changed
        Commit graph MODIFY /icepdf/trunk/icepdf/core/core-awt/src/main/java/org/icepdf/core/util/content/AbstractContentParser.java
        Commit graph MODIFY /icepdf/trunk/icepdf/core/core-awt/src/main/java/org/icepdf/core/pobjects/graphics/ICCBased.java
        Commit graph MODIFY /icepdf/trunk/icepdf/core/core-awt/src/main/java/org/icepdf/core/pobjects/graphics/CalRGB.java
        Commit graph MODIFY /icepdf/trunk/icepdf/core/core-awt/src/main/java/org/icepdf/core/pobjects/graphics/images/RawDecoder.java
        Commit graph MODIFY /icepdf/trunk/icepdf/core/core-awt/src/main/java/org/icepdf/core/pobjects/graphics/ShadingType2Pattern.java
        Commit graph MODIFY /icepdf/trunk/icepdf/core/core-awt/src/main/java/org/icepdf/core/pobjects/graphics/images/ColorKeyMask.java
        Commit graph MODIFY /icepdf/trunk/icepdf/core/core-awt/src/main/java/org/icepdf/core/pobjects/graphics/DeviceN.java
        Commit graph MODIFY /icepdf/trunk/icepdf/core/core-awt/src/main/java/org/icepdf/core/pobjects/graphics/Indexed.java
        Commit graph MODIFY /icepdf/trunk/icepdf/core/core-awt/src/main/java/org/icepdf/core/pobjects/graphics/Separation.java
        Commit graph MODIFY /icepdf/trunk/icepdf/core/core-awt/src/main/java/org/icepdf/core/pobjects/graphics/ShadingMeshPattern.java
        Commit graph MODIFY /icepdf/trunk/icepdf/core/core-awt/src/main/java/org/icepdf/core/pobjects/graphics/ShadingType3Pattern.java
        Commit graph MODIFY /icepdf/trunk/icepdf/core/core-awt/src/main/java/org/icepdf/core/pobjects/graphics/RasterOps/PColorSpaceRasterOp.java
        Commit graph MODIFY /icepdf/trunk/icepdf/core/core-awt/src/main/java/org/icepdf/core/pobjects/graphics/DeviceCMYK.java
        Commit graph MODIFY /icepdf/trunk/icepdf/core/core-awt/src/main/java/org/icepdf/core/pobjects/graphics/Lab.java
        Commit graph MODIFY /icepdf/trunk/icepdf/core/core-awt/src/main/java/org/icepdf/core/pobjects/graphics/DeviceRGB.java
        Hide
        Patrick Corless added a comment -

        Marking as fixed, also took some time to do some refactoring to the core parser to standardize how we work with colour arrays. Should speed things up too.

        Show
        Patrick Corless added a comment - Marking as fixed, also took some time to do some refactoring to the core parser to standardize how we work with colour arrays. Should speed things up too.
        Patrick Corless made changes -
        Status In Progress [ 3 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]

          People

          • Assignee:
            Patrick Corless
            Reporter:
            Patrick Corless
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: