Class ImageUtils

java.lang.Object
com.jhlabs.image.ImageUtils

public abstract class ImageUtils extends Object
A class containing some static utility methods for dealing with BufferedImages.
  • Constructor Details

    • ImageUtils

      public ImageUtils()
  • Method Details

    • createImage

      public static BufferedImage createImage(ImageProducer producer)
      Cretae a BufferedImage from an ImageProducer.
      Parameters:
      producer - the ImageProducer
      Returns:
      a new TYPE_INT_ARGB BufferedImage
    • convertImageToARGB

      public static BufferedImage convertImageToARGB(Image image)
      Convert an Image into a TYPE_INT_ARGB BufferedImage. If the image is already of this type, the original image is returned unchanged.
      Parameters:
      image - the image to convert
      Returns:
      the converted image
    • getSubimage

      public static BufferedImage getSubimage(BufferedImage image, int x, int y, int w, int h)
      Returns a *copy* of a subimage of image. This avoids the performance problems associated with BufferedImage.getSubimage.
      Parameters:
      image - the image
      x - the x position
      y - the y position
      w - the width
      h - the height
      Returns:
      the subimage
    • cloneImage

      public static BufferedImage cloneImage(BufferedImage image)
      Clones a BufferedImage.
      Parameters:
      image - the image to clone
      Returns:
      the cloned image
    • paintCheckedBackground

      public static void paintCheckedBackground(Component c, Graphics g, int x, int y, int width, int height)
      Paint a check pattern, used for a background to indicate image transparency.
      Parameters:
      c - the component to draw into
      g - the Graphics objects
      x - the x position
      y - the y position
      width - the width
      height - the height
    • getSelectedBounds

      public static Rectangle getSelectedBounds(BufferedImage p)
      Calculates the bounds of the non-transparent parts of the given image.
      Parameters:
      p - the image
      Returns:
      the bounds of the non-transparent area
    • composeThroughMask

      public static void composeThroughMask(Raster src, WritableRaster dst, Raster sel)
      Compose src onto dst using the alpha of sel to interpolate between the two. I can't think of a way to do this using AlphaComposite.
      Parameters:
      src - the source raster
      dst - the destination raster
      sel - the mask raster
    • getRGB

      public static int[] getRGB(BufferedImage image, int x, int y, int width, int height, int[] pixels)
      A convenience method for getting ARGB pixels from an image. This tries to avoid the performance penalty of BufferedImage.getRGB unmanaging the image.
      Parameters:
      image - a BufferedImage object
      x - the left edge of the pixel block
      y - the right edge of the pixel block
      width - the width of the pixel arry
      height - the height of the pixel arry
      pixels - the array to hold the returned pixels. May be null.
      Returns:
      the pixels
      See Also:
    • setRGB

      public static void setRGB(BufferedImage image, int x, int y, int width, int height, int[] pixels)
      A convenience method for setting ARGB pixels in an image. This tries to avoid the performance penalty of BufferedImage.setRGB unmanaging the image.
      Parameters:
      image - a BufferedImage object
      x - the left edge of the pixel block
      y - the right edge of the pixel block
      width - the width of the pixel arry
      height - the height of the pixel arry
      pixels - the array of pixels to set
      See Also: