ICEpdf
  1. ICEpdf
  2. PDF-775

Text outline clipping failing if smoothImage scaling enabled.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 5.0.6_P01
    • Fix Version/s: 5.1
    • Component/s: Core/Parsing
    • Labels:
      None
    • Environment:
      any

      Description

      The file in question is using text outline clipping as a mask to an image. If -Dorg.icepdf.core.imageReference=smoothScaled is used the clip is incorrectly applied. This can be avoided with -Dorg.icepdf.core.imageReference=default but this will adversely affect other images.

      We'll need to pass in a custom flag when applying outline clipping to avoid image scaling .

        Activity

        Hide
        Patrick Corless added a comment -

        What appears to be happening here is that the black text is actually a 2x2 image that has a large image smask like 220x25. The reason the masking goes wrong is that the the trilinear smooth scaling operation does the math on a 2x2 images and not the resized 220x25.

        Once this change is made the image is no longer scaled and smoothed slightly by the trilenear scaling.

        Show
        Patrick Corless added a comment - What appears to be happening here is that the black text is actually a 2x2 image that has a large image smask like 220x25. The reason the masking goes wrong is that the the trilinear smooth scaling operation does the math on a 2x2 images and not the resized 220x25. Once this change is made the image is no longer scaled and smoothed slightly by the trilenear scaling.
        Hide
        Patrick Corless added a comment -

        Marking as fixed.

        Show
        Patrick Corless added a comment - Marking as fixed.
        Hide
        Patrick Corless added a comment -

        An oversight on our part as the client is actually using the scaledImageReference and not the smoothScaledImageReference implementation. The scaledImageReferenced also suffered from the the sizing issue between the actual image and the image raster. scaledImageReference was reworked to calculate the image dimensions based on the new image that resulted from the image decode and not the image dimensions that are define in the image's dictionary.

        For example a black images has a dictionary dimension of 2x2 and a masking image for example that is 300x120. After the decode the original 2x2 image has been scaled to the 300x120 so the masking could be properly applied. Now when the scaledImageReference scaling takes place 300x120 is used instead of erroneous 2x2 size.

        Show
        Patrick Corless added a comment - An oversight on our part as the client is actually using the scaledImageReference and not the smoothScaledImageReference implementation. The scaledImageReferenced also suffered from the the sizing issue between the actual image and the image raster. scaledImageReference was reworked to calculate the image dimensions based on the new image that resulted from the image decode and not the image dimensions that are define in the image's dictionary. For example a black images has a dictionary dimension of 2x2 and a masking image for example that is 300x120. After the decode the original 2x2 image has been scaled to the 300x120 so the masking could be properly applied. Now when the scaledImageReference scaling takes place 300x120 is used instead of erroneous 2x2 size.

          People

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

            Dates

            • Created:
              Updated:
              Resolved: