Class MagickUtil


  • public final class MagickUtil
    extends java.lang.Object
    Utility for converting JMagick MagickImages to standard Java BufferedImages and back.

    NOTE: This class is considered an implementation detail and not part of the public API. This class is subject to change without further notice. You have been warned. :-)

    Version:
    $Id: //depot/branches/personal/haraldk/twelvemonkeys/release-2/twelvemonkeys-core/src/main/java/com/twelvemonkeys/image/MagickUtil.java#4 $
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static int[] BAND_OFF_OPAQUE
      Band offsets for raw BGR
      private static int[] BAND_OFF_TRANS
      Band offsets for raw ABGR
      private static java.awt.image.ColorModel CM_COLOR_ALPHA
      Color Model usesd for raw ABGR
      private static java.awt.image.ColorModel CM_COLOR_OPAQUE
      Color Model usesd for raw BGR
      private static java.awt.image.ColorModel CM_GRAY_ALPHA
      Color Model usesd for raw GRAY + ALPHA
      private static java.awt.image.ColorModel CM_GRAY_OPAQUE
      Color Model usesd for raw GRAY
      private static java.awt.image.IndexColorModel CM_MONOCHROME
      Color Model usesd for bilevel (B/W)
      private static boolean DEBUG  
      private static java.awt.Point LOCATION_UPPER_LEFT
      The point at 0, 0
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private MagickUtil()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      private static java.awt.image.BufferedImage bilevelToBuffered​(magick.MagickImage pImage)
      Converts a bi-level MagickImage to a BufferedImage, of type TYPE_BYTE_BINARY.
      private static java.awt.image.BufferedImage cmykToBuffered​(magick.MagickImage pImage, boolean pAlpha)
      Converts an MagickImage to a BufferedImage which holds an CMYK ICC profile
      static java.awt.image.IndexColorModel createIndexColorModel​(magick.PixelPacket[] pColormap, boolean pAlpha)
      Creates an IndexColorModel from an array of PixelPackets.
      private static java.awt.image.BufferedImage grayToBuffered​(magick.MagickImage pImage, boolean pAlpha)
      Converts a gray MagickImage to a BufferedImage, of type TYPE_USHORT_GRAY or TYPE_BYTE_GRAY.
      private static magick.MagickImage grayToMagick​(java.awt.image.BufferedImage pImage, boolean pAlpha)  
      private static magick.MagickImage indexedToMagick​(java.awt.image.BufferedImage pImage, java.awt.image.IndexColorModel pColorModel, boolean pAlpha)  
      private static java.awt.image.BufferedImage paletteToBuffered​(magick.MagickImage pImage, boolean pAlpha)
      Converts a palette-based MagickImage to a BufferedImage, of type TYPE_BYTE_BINARY (for images with a palette of <= 16 colors) or TYPE_BYTE_INDEXED.
      private static java.awt.image.BufferedImage rgbToBuffered​(magick.MagickImage pImage, boolean pAlpha)
      Converts an (A)RGB MagickImage to a BufferedImage, of type TYPE_4BYTE_ABGR or TYPE_3BYTE_BGR.
      private static magick.MagickImage rgbToMagic​(java.awt.image.BufferedImage pImage, boolean pAlpha)  
      static java.awt.image.BufferedImage toBuffered​(magick.MagickImage pImage)
      Converts a MagickImage to a BufferedImage.
      static magick.MagickImage toMagick​(java.awt.image.BufferedImage pImage)
      Converts a BufferedImage to a MagickImage.
      • Methods inherited from class java.lang.Object

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

      • CM_MONOCHROME

        private static final java.awt.image.IndexColorModel CM_MONOCHROME
        Color Model usesd for bilevel (B/W)
      • CM_COLOR_ALPHA

        private static final java.awt.image.ColorModel CM_COLOR_ALPHA
        Color Model usesd for raw ABGR
      • CM_COLOR_OPAQUE

        private static final java.awt.image.ColorModel CM_COLOR_OPAQUE
        Color Model usesd for raw BGR
      • CM_GRAY_ALPHA

        private static final java.awt.image.ColorModel CM_GRAY_ALPHA
        Color Model usesd for raw GRAY + ALPHA
      • CM_GRAY_OPAQUE

        private static final java.awt.image.ColorModel CM_GRAY_OPAQUE
        Color Model usesd for raw GRAY
      • BAND_OFF_TRANS

        private static final int[] BAND_OFF_TRANS
        Band offsets for raw ABGR
      • BAND_OFF_OPAQUE

        private static final int[] BAND_OFF_OPAQUE
        Band offsets for raw BGR
      • LOCATION_UPPER_LEFT

        private static final java.awt.Point LOCATION_UPPER_LEFT
        The point at 0, 0
      • DEBUG

        private static final boolean DEBUG
    • Constructor Detail

      • MagickUtil

        private MagickUtil()
    • Method Detail

      • toBuffered

        public static java.awt.image.BufferedImage toBuffered​(magick.MagickImage pImage)
                                                       throws magick.MagickException
        Converts a MagickImage to a BufferedImage.

        The conversion depends on pImage's ImageType:

        ImageType.BilevelType
        BufferedImage of type TYPE_BYTE_BINARY
        ImageType.GrayscaleType
        BufferedImage of type TYPE_BYTE_GRAY
        ImageType.GrayscaleAlphaType
        BufferedImage of type TYPE_USHORT_GRAY
        ImageType.PaletteType
        BufferedImage of type TYPE_BYTE_BINARY (for images with a palette of <= 16 colors) or TYPE_BYTE_INDEXED
        ImageType.PaletteAlphaType
        BufferedImage of type TYPE_BYTE_BINARY (for images with a palette of <= 16 colors) or TYPE_BYTE_INDEXED
        ImageType.TrueColorType
        BufferedImage of type TYPE_3BYTE_BGR
        ImageType.TrueColorPaletteType
        BufferedImage of type TYPE_4BYTE_ABGR
        Parameters:
        pImage - the original MagickImage
        Returns:
        a new BufferedImage
        Throws:
        java.lang.IllegalArgumentException - if pImage is null or if the ImageType is not one mentioned above.
        magick.MagickException - if an exception occurs during conversion
        See Also:
        BufferedImage
      • toMagick

        public static magick.MagickImage toMagick​(java.awt.image.BufferedImage pImage)
                                           throws magick.MagickException
        Converts a BufferedImage to a MagickImage.

        The conversion depends on pImage's ColorModel:

        IndexColorModel with 1 bit b/w
        MagickImage of type ImageType.BilevelType
        IndexColorModel > 1 bit,
        MagickImage of type ImageType.PaletteType or MagickImage of type ImageType.PaletteAlphaType depending on ColorModel.getAlpha()
        ColorModel.getColorSpace().getType() == ColorSpace.TYPE_GRAY
        MagickImage of type ImageType.GrayscaleType or MagickImage of type ImageType.GrayscaleAlphaType depending on ColorModel.getAlpha()
        ColorModel.getColorSpace().getType() == ColorSpace.TYPE_RGB
        MagickImage of type ImageType.TrueColorType or MagickImage of type ImageType.TrueColorPaletteType
        Parameters:
        pImage - the original BufferedImage
        Returns:
        a new MagickImage
        Throws:
        java.lang.IllegalArgumentException - if pImage is null or if the ColorModel is not one mentioned above.
        magick.MagickException - if an exception occurs during conversion
        See Also:
        BufferedImage
      • rgbToMagic

        private static magick.MagickImage rgbToMagic​(java.awt.image.BufferedImage pImage,
                                                     boolean pAlpha)
                                              throws magick.MagickException
        Throws:
        magick.MagickException
      • grayToMagick

        private static magick.MagickImage grayToMagick​(java.awt.image.BufferedImage pImage,
                                                       boolean pAlpha)
                                                throws magick.MagickException
        Throws:
        magick.MagickException
      • indexedToMagick

        private static magick.MagickImage indexedToMagick​(java.awt.image.BufferedImage pImage,
                                                          java.awt.image.IndexColorModel pColorModel,
                                                          boolean pAlpha)
                                                   throws magick.MagickException
        Throws:
        magick.MagickException
      • bilevelToBuffered

        private static java.awt.image.BufferedImage bilevelToBuffered​(magick.MagickImage pImage)
                                                               throws magick.MagickException
        Converts a bi-level MagickImage to a BufferedImage, of type TYPE_BYTE_BINARY.
        Parameters:
        pImage - the original MagickImage
        Returns:
        a new BufferedImage
        Throws:
        magick.MagickException - if an exception occurs during conversion
        See Also:
        BufferedImage
      • grayToBuffered

        private static java.awt.image.BufferedImage grayToBuffered​(magick.MagickImage pImage,
                                                                   boolean pAlpha)
                                                            throws magick.MagickException
        Converts a gray MagickImage to a BufferedImage, of type TYPE_USHORT_GRAY or TYPE_BYTE_GRAY.
        Parameters:
        pImage - the original MagickImage
        pAlpha - keep alpha channel
        Returns:
        a new BufferedImage
        Throws:
        magick.MagickException - if an exception occurs during conversion
        See Also:
        BufferedImage
      • paletteToBuffered

        private static java.awt.image.BufferedImage paletteToBuffered​(magick.MagickImage pImage,
                                                                      boolean pAlpha)
                                                               throws magick.MagickException
        Converts a palette-based MagickImage to a BufferedImage, of type TYPE_BYTE_BINARY (for images with a palette of <= 16 colors) or TYPE_BYTE_INDEXED.
        Parameters:
        pImage - the original MagickImage
        pAlpha - keep alpha channel
        Returns:
        a new BufferedImage
        Throws:
        magick.MagickException - if an exception occurs during conversion
        See Also:
        BufferedImage
      • createIndexColorModel

        public static java.awt.image.IndexColorModel createIndexColorModel​(magick.PixelPacket[] pColormap,
                                                                           boolean pAlpha)
        Creates an IndexColorModel from an array of PixelPackets.
        Parameters:
        pColormap - the original colormap as a PixelPacket array
        pAlpha - keep alpha channel
        Returns:
        a new IndexColorModel
      • rgbToBuffered

        private static java.awt.image.BufferedImage rgbToBuffered​(magick.MagickImage pImage,
                                                                  boolean pAlpha)
                                                           throws magick.MagickException
        Converts an (A)RGB MagickImage to a BufferedImage, of type TYPE_4BYTE_ABGR or TYPE_3BYTE_BGR.
        Parameters:
        pImage - the original MagickImage
        pAlpha - keep alpha channel
        Returns:
        a new BufferedImage
        Throws:
        magick.MagickException - if an exception occurs during conversion
        See Also:
        BufferedImage
      • cmykToBuffered

        private static java.awt.image.BufferedImage cmykToBuffered​(magick.MagickImage pImage,
                                                                   boolean pAlpha)
                                                            throws magick.MagickException
        Converts an MagickImage to a BufferedImage which holds an CMYK ICC profile
        Parameters:
        pImage - the original MagickImage
        pAlpha - keep alpha channel
        Returns:
        a new BufferedImage
        Throws:
        magick.MagickException - if an exception occurs during conversion
        See Also:
        BufferedImage