Class PSImageUtils


  • public class PSImageUtils
    extends java.lang.Object
    Utility code for rendering images in PostScript.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static char[] HEX  
    • Constructor Summary

      Constructors 
      Constructor Description
      PSImageUtils()  
    • Method Summary

      All Methods Static Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      (package private) static void compressAndWriteBitmap​(ImageEncoder encoder, PSGenerator gen)  
      private static java.lang.String getColorSpaceName​(java.awt.color.ColorSpace colorSpace)  
      private static java.lang.String getDecodeArray​(int numComponents, boolean invertColors)  
      static int[] getRGB​(java.awt.image.RenderedImage img, int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize)
      Extracts a packed RGB integer array of a RenderedImage.
      static void paintForm​(PSResource form, java.awt.geom.Dimension2D formDimensions, java.awt.geom.Rectangle2D targetRect, PSGenerator gen)
      Paints a reusable image (previously added as a PostScript form).
      static void paintForm​(PSResource form, java.awt.geom.Rectangle2D targetRect, PSGenerator gen)
      static void paintReusableImage​(java.lang.String formName, java.awt.geom.Rectangle2D targetRect, PSGenerator gen)
      private static java.awt.image.ColorModel populateImageDictionary​(java.awt.Dimension imgDim, java.awt.image.ColorModel colorModel, PSDictionary imageDict)  
      private static java.awt.image.ColorModel populateImageDictionary​(java.awt.Dimension imgDim, java.awt.image.ColorModel colorModel, PSDictionary imageDict, java.awt.Color maskColor)  
      private static void prepareColorspace​(PSGenerator gen, java.awt.color.ColorSpace colorSpace)  
      private static void prepareColorSpace​(PSGenerator gen, java.awt.image.ColorModel cm)  
      static void renderBitmapImage​(java.awt.image.RenderedImage img, float x, float y, float w, float h, PSGenerator gen, java.awt.Color mask, boolean maskBitmap)
      Renders a bitmap image to PostScript.
      static void renderEPS​(byte[] rawEPS, java.lang.String name, float x, float y, float w, float h, float bboxx, float bboxy, float bboxw, float bboxh, PSGenerator gen)
      Deprecated.
      Please use the variant with the InputStream as parameter
      static void renderEPS​(java.io.InputStream in, java.lang.String name, java.awt.geom.Rectangle2D viewport, java.awt.geom.Rectangle2D bbox, PSGenerator gen)
      Places an EPS file in the PostScript stream.
      private static java.lang.String rgb2Hex​(int rgb)  
      (package private) static java.lang.String toHexString​(byte[] color)  
      static void translateAndScale​(PSGenerator gen, java.awt.geom.Dimension2D imageDimensions, java.awt.geom.Rectangle2D targetRect)
      Generates commands to modify the current transformation matrix so an image fits into a given rectangle.
      static void writeImage​(byte[] img, java.awt.Dimension imgDim, java.lang.String imgDescription, java.awt.geom.Rectangle2D targetRect, boolean isJPEG, java.awt.color.ColorSpace colorSpace, PSGenerator gen)
      Deprecated.
      Please use the variant with the more versatile ImageEncoder as parameter
      static void writeImage​(ImageEncoder encoder, java.awt.Dimension imgDim, java.lang.String imgDescription, java.awt.geom.Rectangle2D targetRect, java.awt.color.ColorSpace colorSpace, int bitsPerComponent, boolean invertImage, PSGenerator gen)
      Writes a bitmap image to the PostScript stream.
      static void writeImage​(ImageEncoder encoder, java.awt.Dimension imgDim, java.lang.String imgDescription, java.awt.geom.Rectangle2D targetRect, java.awt.image.ColorModel colorModel, PSGenerator gen)  
      static void writeImage​(ImageEncoder encoder, java.awt.Dimension imgDim, java.lang.String imgDescription, java.awt.geom.Rectangle2D targetRect, java.awt.image.ColorModel colorModel, PSGenerator gen, java.awt.image.RenderedImage ri, boolean maskBitmap)
      Writes a bitmap image to the PostScript stream.
      static void writeImage​(ImageEncoder encoder, java.awt.Dimension imgDim, java.lang.String imgDescription, java.awt.geom.Rectangle2D targetRect, java.awt.image.ColorModel colorModel, PSGenerator gen, java.awt.image.RenderedImage ri, java.awt.Color maskColor)
      Writes a bitmap image to the PostScript stream.
      (package private) static void writeImageCommand​(java.awt.image.RenderedImage img, PSDictionary imageDict, PSGenerator gen)  
      (package private) static void writeImageCommand​(PSDictionary imageDict, java.awt.Dimension imgDim, java.awt.color.ColorSpace colorSpace, boolean invertImage, PSGenerator gen)  
      (package private) static void writeImageCommand​(PSDictionary imageDict, java.awt.image.ColorModel cm, PSGenerator gen, boolean maskBitmap)  
      private static java.awt.image.ColorModel writeImageDictionary​(java.awt.Dimension imgDim, PSDictionary imageDict, java.awt.image.ColorModel colorModel)  
      static PSResource writeReusableImage​(byte[] img, java.awt.Dimension imgDim, java.lang.String formName, java.lang.String imageDescription, boolean isJPEG, java.awt.color.ColorSpace colorSpace, PSGenerator gen)
      Deprecated.
      Please use FormGenerator
      protected static PSResource writeReusableImage​(ImageEncoder encoder, java.awt.Dimension imgDim, java.lang.String formName, java.lang.String imageDescription, java.awt.color.ColorSpace colorSpace, boolean invertImage, PSGenerator gen)
      Deprecated.
      Please use FormGenerator
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • HEX

        private static final char[] HEX
    • Constructor Detail

      • PSImageUtils

        public PSImageUtils()
    • Method Detail

      • writeImage

        public static void writeImage​(byte[] img,
                                      java.awt.Dimension imgDim,
                                      java.lang.String imgDescription,
                                      java.awt.geom.Rectangle2D targetRect,
                                      boolean isJPEG,
                                      java.awt.color.ColorSpace colorSpace,
                                      PSGenerator gen)
                               throws java.io.IOException
        Deprecated.
        Please use the variant with the more versatile ImageEncoder as parameter
        Writes a bitmap image to the PostScript stream.
        Parameters:
        img - the bitmap image as a byte array
        imgDim - the dimensions of the image
        imgDescription - the name of the image
        targetRect - the target rectangle to place the image in
        isJPEG - true if "img" contains a DCT-encoded images, false if "img" contains the decoded bitmap
        colorSpace - the color space of the image
        gen - the PostScript generator
        Throws:
        java.io.IOException - In case of an I/O exception
      • writeImage

        public static void writeImage​(ImageEncoder encoder,
                                      java.awt.Dimension imgDim,
                                      java.lang.String imgDescription,
                                      java.awt.geom.Rectangle2D targetRect,
                                      java.awt.color.ColorSpace colorSpace,
                                      int bitsPerComponent,
                                      boolean invertImage,
                                      PSGenerator gen)
                               throws java.io.IOException
        Writes a bitmap image to the PostScript stream.
        Parameters:
        encoder - the image encoder
        imgDim - the dimensions of the image
        imgDescription - the name of the image
        targetRect - the target rectangle to place the image in
        colorSpace - the color space of the image
        bitsPerComponent - the number of bits per component
        invertImage - true if the image shall be inverted
        gen - the PostScript generator
        Throws:
        java.io.IOException - In case of an I/O exception
      • writeImage

        public static void writeImage​(ImageEncoder encoder,
                                      java.awt.Dimension imgDim,
                                      java.lang.String imgDescription,
                                      java.awt.geom.Rectangle2D targetRect,
                                      java.awt.image.ColorModel colorModel,
                                      PSGenerator gen)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • writeImage

        public static void writeImage​(ImageEncoder encoder,
                                      java.awt.Dimension imgDim,
                                      java.lang.String imgDescription,
                                      java.awt.geom.Rectangle2D targetRect,
                                      java.awt.image.ColorModel colorModel,
                                      PSGenerator gen,
                                      java.awt.image.RenderedImage ri,
                                      boolean maskBitmap)
                               throws java.io.IOException
        Writes a bitmap image to the PostScript stream.
        Parameters:
        encoder - the image encoder
        imgDim - the dimensions of the image
        imgDescription - the name of the image
        targetRect - the target rectangle to place the image in
        colorModel - the color model of the image
        gen - the PostScript generator
        Throws:
        java.io.IOException - In case of an I/O exception
      • writeImage

        public static void writeImage​(ImageEncoder encoder,
                                      java.awt.Dimension imgDim,
                                      java.lang.String imgDescription,
                                      java.awt.geom.Rectangle2D targetRect,
                                      java.awt.image.ColorModel colorModel,
                                      PSGenerator gen,
                                      java.awt.image.RenderedImage ri,
                                      java.awt.Color maskColor)
                               throws java.io.IOException
        Writes a bitmap image to the PostScript stream.
        Parameters:
        encoder - the image encoder
        imgDim - the dimensions of the image
        imgDescription - the name of the image
        targetRect - the target rectangle to place the image in
        colorModel - the color model of the image
        gen - the PostScript generator
        Throws:
        java.io.IOException - In case of an I/O exception
      • populateImageDictionary

        private static java.awt.image.ColorModel populateImageDictionary​(java.awt.Dimension imgDim,
                                                                         java.awt.image.ColorModel colorModel,
                                                                         PSDictionary imageDict)
      • populateImageDictionary

        private static java.awt.image.ColorModel populateImageDictionary​(java.awt.Dimension imgDim,
                                                                         java.awt.image.ColorModel colorModel,
                                                                         PSDictionary imageDict,
                                                                         java.awt.Color maskColor)
      • writeImageDictionary

        private static java.awt.image.ColorModel writeImageDictionary​(java.awt.Dimension imgDim,
                                                                      PSDictionary imageDict,
                                                                      java.awt.image.ColorModel colorModel)
      • getDecodeArray

        private static java.lang.String getDecodeArray​(int numComponents,
                                                       boolean invertColors)
      • prepareColorspace

        private static void prepareColorspace​(PSGenerator gen,
                                              java.awt.color.ColorSpace colorSpace)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • prepareColorSpace

        private static void prepareColorSpace​(PSGenerator gen,
                                              java.awt.image.ColorModel cm)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • toHexString

        static java.lang.String toHexString​(byte[] color)
      • writeImageCommand

        static void writeImageCommand​(java.awt.image.RenderedImage img,
                                      PSDictionary imageDict,
                                      PSGenerator gen)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • writeImageCommand

        static void writeImageCommand​(PSDictionary imageDict,
                                      java.awt.image.ColorModel cm,
                                      PSGenerator gen,
                                      boolean maskBitmap)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • writeImageCommand

        static void writeImageCommand​(PSDictionary imageDict,
                                      java.awt.Dimension imgDim,
                                      java.awt.color.ColorSpace colorSpace,
                                      boolean invertImage,
                                      PSGenerator gen)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • rgb2Hex

        private static java.lang.String rgb2Hex​(int rgb)
      • renderBitmapImage

        public static void renderBitmapImage​(java.awt.image.RenderedImage img,
                                             float x,
                                             float y,
                                             float w,
                                             float h,
                                             PSGenerator gen,
                                             java.awt.Color mask,
                                             boolean maskBitmap)
                                      throws java.io.IOException
        Renders a bitmap image to PostScript.
        Parameters:
        img - image to render
        x - x position
        y - y position
        w - width
        h - height
        gen - PS generator
        Throws:
        java.io.IOException - In case of an I/O problem while rendering the image
      • writeReusableImage

        public static PSResource writeReusableImage​(byte[] img,
                                                    java.awt.Dimension imgDim,
                                                    java.lang.String formName,
                                                    java.lang.String imageDescription,
                                                    boolean isJPEG,
                                                    java.awt.color.ColorSpace colorSpace,
                                                    PSGenerator gen)
                                             throws java.io.IOException
        Deprecated.
        Please use FormGenerator
        Writes a bitmap image as a PostScript form enclosed by DSC resource wrappers to the PostScript file.
        Parameters:
        img - the raw bitmap data
        imgDim - the dimensions of the image
        formName - the name of the PostScript form to use
        imageDescription - a description of the image added as a DSC Title comment
        isJPEG - true if "img" contains a DCT-encoded images, false if "img" contains the decoded bitmap
        colorSpace - the color space of the image
        gen - the PostScript generator
        Returns:
        a PSResource representing the form for resource tracking
        Throws:
        java.io.IOException - In case of an I/O exception
      • writeReusableImage

        protected static PSResource writeReusableImage​(ImageEncoder encoder,
                                                       java.awt.Dimension imgDim,
                                                       java.lang.String formName,
                                                       java.lang.String imageDescription,
                                                       java.awt.color.ColorSpace colorSpace,
                                                       boolean invertImage,
                                                       PSGenerator gen)
                                                throws java.io.IOException
        Deprecated.
        Please use FormGenerator
        Writes a bitmap image as a PostScript form enclosed by DSC resource wrappers to the PostScript file.
        Parameters:
        encoder - the ImageEncoder that will provide the raw bitmap data
        imgDim - the dimensions of the image
        formName - the name of the PostScript form to use
        imageDescription - a description of the image added as a DSC Title comment
        colorSpace - the color space of the image
        invertImage - true if the image shall be inverted
        gen - the PostScript generator
        Returns:
        a PSResource representing the form for resource tracking
        Throws:
        java.io.IOException - In case of an I/O exception
      • paintReusableImage

        public static void paintReusableImage​(java.lang.String formName,
                                              java.awt.geom.Rectangle2D targetRect,
                                              PSGenerator gen)
                                       throws java.io.IOException
        Paints a reusable image (previously added as a PostScript form).
        Parameters:
        formName - the name of the PostScript form implementing the image
        targetRect - the target rectangle to place the image in
        gen - the PostScript generator
        Throws:
        java.io.IOException - In case of an I/O exception
      • paintForm

        public static void paintForm​(PSResource form,
                                     java.awt.geom.Rectangle2D targetRect,
                                     PSGenerator gen)
                              throws java.io.IOException
        Paints a reusable image (previously added as a PostScript form).
        Parameters:
        form - the PostScript form resource implementing the image
        targetRect - the target rectangle to place the image in
        gen - the PostScript generator
        Throws:
        java.io.IOException - In case of an I/O exception
      • paintForm

        public static void paintForm​(PSResource form,
                                     java.awt.geom.Dimension2D formDimensions,
                                     java.awt.geom.Rectangle2D targetRect,
                                     PSGenerator gen)
                              throws java.io.IOException
        Paints a reusable image (previously added as a PostScript form).
        Parameters:
        form - the PostScript form resource implementing the image
        formDimensions - the original dimensions of the form
        targetRect - the target rectangle to place the image in
        gen - the PostScript generator
        Throws:
        java.io.IOException - In case of an I/O exception
      • getColorSpaceName

        private static java.lang.String getColorSpaceName​(java.awt.color.ColorSpace colorSpace)
      • compressAndWriteBitmap

        static void compressAndWriteBitmap​(ImageEncoder encoder,
                                           PSGenerator gen)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • translateAndScale

        public static void translateAndScale​(PSGenerator gen,
                                             java.awt.geom.Dimension2D imageDimensions,
                                             java.awt.geom.Rectangle2D targetRect)
                                      throws java.io.IOException
        Generates commands to modify the current transformation matrix so an image fits into a given rectangle.
        Parameters:
        gen - the PostScript generator
        imageDimensions - the image's dimensions
        targetRect - the target rectangle
        Throws:
        java.io.IOException - if an I/O error occurs
      • getRGB

        public static int[] getRGB​(java.awt.image.RenderedImage img,
                                   int startX,
                                   int startY,
                                   int w,
                                   int h,
                                   int[] rgbArray,
                                   int offset,
                                   int scansize)
        Extracts a packed RGB integer array of a RenderedImage.
        Parameters:
        img - the image
        startX - the starting X coordinate
        startY - the starting Y coordinate
        w - the width of the cropped image
        h - the height of the cropped image
        rgbArray - the prepared integer array to write to
        offset - offset in the target array
        scansize - width of a row in the target array
        Returns:
        the populated integer array previously passed in as rgbArray parameter
      • renderEPS

        public static void renderEPS​(byte[] rawEPS,
                                     java.lang.String name,
                                     float x,
                                     float y,
                                     float w,
                                     float h,
                                     float bboxx,
                                     float bboxy,
                                     float bboxw,
                                     float bboxh,
                                     PSGenerator gen)
                              throws java.io.IOException
        Deprecated.
        Please use the variant with the InputStream as parameter
        Places an EPS file in the PostScript stream.
        Parameters:
        rawEPS - byte array containing the raw EPS data
        name - name for the EPS document
        x - x-coordinate of viewport in points
        y - y-coordinate of viewport in points
        w - width of viewport in points
        h - height of viewport in points
        bboxx - x-coordinate of EPS bounding box in points
        bboxy - y-coordinate of EPS bounding box in points
        bboxw - width of EPS bounding box in points
        bboxh - height of EPS bounding box in points
        gen - the PS generator
        Throws:
        java.io.IOException - in case an I/O error happens during output
      • renderEPS

        public static void renderEPS​(java.io.InputStream in,
                                     java.lang.String name,
                                     java.awt.geom.Rectangle2D viewport,
                                     java.awt.geom.Rectangle2D bbox,
                                     PSGenerator gen)
                              throws java.io.IOException
        Places an EPS file in the PostScript stream.
        Parameters:
        in - the InputStream that contains the EPS stream
        name - name for the EPS document
        viewport - the viewport in points in which to place the EPS
        bbox - the EPS bounding box in points
        gen - the PS generator
        Throws:
        java.io.IOException - in case an I/O error happens during output