Class AlphaRasterImage

java.lang.Object
org.apache.fop.pdf.AlphaRasterImage
All Implemented Interfaces:
PDFImage

public class AlphaRasterImage extends Object implements PDFImage
PDFImage implementation for alpha channel "images".
  • Constructor Details

    • AlphaRasterImage

      public AlphaRasterImage(String k, Raster alpha)
      Create a alpha channel image. Creates a new bitmap image with the given data.
      Parameters:
      k - the key to be used to lookup the image
      alpha - the alpha channel raster
    • AlphaRasterImage

      public AlphaRasterImage(String k, RenderedImage image)
      Create a alpha channel image. Extracts the alpha channel from the RenderedImage and creates a new bitmap image with the given data.
      Parameters:
      k - the key to be used to lookup the image
      image - the image (must have an alpha channel)
  • Method Details

    • setup

      public void setup(PDFDocument doc)
      Setup the PDF image for the current document. Some image formats may need to access the document (for example to add an ICC profile to the document).
      Specified by:
      setup in interface PDFImage
      Parameters:
      doc - the PDF parent document (todo) Remove this and delegate to the XObject
    • getKey

      public String getKey()
      Key to look up XObject. This should be a unique key to refer to the image.
      Specified by:
      getKey in interface PDFImage
      Returns:
      the key for this image
    • getWidth

      public int getWidth()
      Get the image width in pixels.
      Specified by:
      getWidth in interface PDFImage
      Returns:
      the image width
    • getHeight

      public int getHeight()
      Get the image height in pixels.
      Specified by:
      getHeight in interface PDFImage
      Returns:
      the image height
    • getColorSpace

      public PDFDeviceColorSpace getColorSpace()
      Get the color space for this image. Possible results are: DeviceGray, DeviceRGB, or DeviceCMYK
      Specified by:
      getColorSpace in interface PDFImage
      Returns:
      the color space
    • getBitsPerComponent

      public int getBitsPerComponent()
      Get the bits per color component for this image.
      Specified by:
      getBitsPerComponent in interface PDFImage
      Returns:
      the bits per component
    • isTransparent

      public boolean isTransparent()
      Check if this image has a transparent color transparency. Classes such as PDFImageXObject rely on this simple binary model of transparency (e.g. compare to Transparency) in order to render color key masking (see PDF Spec 1.7 Chapter 8.9.6.4). Therefore only return true if image has fully transparent colors.
      Specified by:
      isTransparent in interface PDFImage
      Returns:
      true if it has at least one fully transparent color
    • getTransparentColor

      public PDFColor getTransparentColor()
      Get the transparent color.
      Specified by:
      getTransparentColor in interface PDFImage
      Returns:
      the transparent color for this image
    • getMask

      public String getMask()
      Get the PDF reference for a bitmap mask.
      Specified by:
      getMask in interface PDFImage
      Returns:
      the PDF reference for the mask image
    • getSoftMask

      public String getSoftMask()
      Returns:
      null (unless overridden)
    • getSoftMaskReference

      public PDFReference getSoftMaskReference()
      Get the PDF reference for a soft mask.
      Specified by:
      getSoftMaskReference in interface PDFImage
      Returns:
      the PDF reference for a soft mask image (or null if there's no soft mask)
    • isInverted

      public boolean isInverted()
      Specified by:
      isInverted in interface PDFImage
      Returns:
      true for CMYK images generated by Adobe Photoshop
    • outputContents

      public void outputContents(OutputStream out) throws IOException
      Writes the raw, unencoded contents of the image to a given output stream.
      Specified by:
      outputContents in interface PDFImage
      Parameters:
      out - OutputStream to write to
      Throws:
      IOException - if there creating stream
    • populateXObjectDictionary

      public void populateXObjectDictionary(PDFDictionary dict)
      Populates the XObject's dictionary with additional values. The values are added to the dictionary after all the values obtained from other methods from this interface have been put into the dictionary. That allows to override certain values.
      Specified by:
      populateXObjectDictionary in interface PDFImage
      Parameters:
      dict - the dictionary to fill
    • getICCStream

      public PDFICCStream getICCStream()
      Get the ICC stream for this image.
      Specified by:
      getICCStream in interface PDFImage
      Returns:
      the ICC stream for this image if any
    • isPS

      public boolean isPS()
      Check if this image is a PostScript image.
      Specified by:
      isPS in interface PDFImage
      Returns:
      true if this is a PostScript image
    • getFilterHint

      public String getFilterHint()
      Returns a hint in form of a String (Possible values from PDFFilterList) indicating which filter setup should be used to encode the object.
      Specified by:
      getFilterHint in interface PDFImage
      Returns:
      the filter setup hint
    • getPDFFilter

      public PDFFilter getPDFFilter()
      Get the PDF Filter to be applied to the image.
      Specified by:
      getPDFFilter in interface PDFImage
      Returns:
      the PDF Filter or null
    • multipleFiltersAllowed

      public boolean multipleFiltersAllowed()
      Indicates whether multiple image filters are allowed; this is implemented because Adobe Reader does not like multiple FlateDecode filters applied to an image even though that allowed by the PDF spec; this is probable due to security concerns since many PDF malware exploits, like zip bombs, make use of a chain of FlateDecode filters.
      Specified by:
      multipleFiltersAllowed in interface PDFImage