Class Imaging

java.lang.Object
de.gurkenlabs.litiengine.util.Imaging

public final class Imaging extends Object
The type Imaging.
  • Field Details

  • Method Details

    • addShadow

      public static BufferedImage addShadow(BufferedImage image, int xOffset, int yOffset)
      Adds a shadow effect by executing the following steps: 1. Transform visible pixels to a semi-transparent black 2. Flip the image vertically 3. Scale it down 4. Render original image and shadow on a buffered image
      Parameters:
      image - the image
      xOffset - the x offset
      yOffset - the y offset
      Returns:
      the buffered image
    • applyAlphaChannel

      public static BufferedImage applyAlphaChannel(BufferedImage img, Color color)
      All pixels that have the specified color are rendered transparent.
      Parameters:
      img - the img
      color - the color
      Returns:
      the image
    • borderAlpha

      public static BufferedImage borderAlpha(BufferedImage image, Color strokeColor, boolean borderOnly)
      Draw a stroke around an image in the given color.
      Parameters:
      image - the input image
      strokeColor - the stroke color
      borderOnly - decide whether only the border of the given image will be drawn
      Returns:
      the buffered image with a border drawn around it
    • isEmpty

      public static boolean isEmpty(BufferedImage image)
      Checks whether a given BufferedImage only has transparent pixels.
      Parameters:
      image - the image
      Returns:
      true if there are no coloured pixels in the image.
    • areEqual

      public static boolean areEqual(BufferedImage image1, BufferedImage image2)
      Checks whether two BufferedImages are equal.
      Parameters:
      image1 - the image 1
      image2 - the image 2
      Returns:
      true if the images are equal
    • crop

      public static BufferedImage crop(BufferedImage image, int cropAlignment, int cropVerticlaAlignment, int width, int height)
      Crops a sub image from the specified image.
      Parameters:
      image - The image to crop the sub-image from.
      cropAlignment - use the following consts:
      cropVerticlaAlignment - use the following consts:
      width - The width to crop.
      height - The height to crop.
      Returns:
      The cropped image or the original image if it is smaller than the specified dimensions.
    • flashVisiblePixels

      public static BufferedImage flashVisiblePixels(Image image, Color flashColor)
      All pixels that are not transparent are replaced by a pixel of the specified flashColor.
      Parameters:
      image - the image
      flashColor - the flash color
      Returns:
      the buffered image
    • flipSpritesHorizontally

      public static BufferedImage flipSpritesHorizontally(Spritesheet sprite)
      Flip the individual sprites in a Spritesheet horizontally and return an image from which a new Spritesheet can be created.
      Parameters:
      sprite - the spritesheet
      Returns:
      a BufferedImage containing the horizontally flipped sprites
    • flipSpritesVertically

      public static BufferedImage flipSpritesVertically(Spritesheet sprite)
      Flip the individual sprites in a Spritesheet vertically and return an image from which a new Spritesheet can be created.
      Parameters:
      sprite - the spritesheet
      Returns:
      a BufferedImage containing the vertically flipped sprites
    • nineSlice

      public static BufferedImage nineSlice(BufferedImage image, int sliceWidth, int sliceHeight, int targetWidth, int targetHeight, float scaleFactor)
      Generates a 9-slice scaled image from a given image in the given dimensions.
      Parameters:
      image - the input image used for slicing. Will be sliced into 3 rows and 3 columns (@see 9-slice scaling).
      sliceWidth - the slice width of the input image
      sliceHeight - the slice width of the input image
      targetWidth - the target width of the output image
      targetHeight - the target height of the output image
      scaleFactor - the factor by which the individual slices will be resized
      Returns:
      a new BufferedImage with the scaled slices put together
    • nineSlice

      public static BufferedImage nineSlice(Spritesheet spritesheet, int targetWidth, int targetHeight, float scaleFactor)
      Generates a 9-slice scaled image from a given spritesheet in the given dimensions.
      Parameters:
      spritesheet - the spritesheet used for slicing. Will be sliced into 3 rows and 3 columns (@see 9-slice scaling).
      targetWidth - the target width of the output image
      targetHeight - the target height of the output image
      scaleFactor - the factor by which the individual slices will be resized
      Returns:
      a new BufferedImage with the scaled slices put together
    • copy

      public static BufferedImage copy(BufferedImage image)
      Creates a new BufferedImage instance from the specified image.
      Parameters:
      image - The image to be copied.
      Returns:
      A BufferedImage that is a copy of the input image.
    • getCompatibleImage

      public static BufferedImage getCompatibleImage(int width, int height)
      Gets an empty BufferedImage with the given size.
      Parameters:
      width - the width
      height - the height
      Returns:
      an empty BufferedImage with the given size
    • getSubImages

      public static BufferedImage[][] getSubImages(BufferedImage image, int rows, int columns)
      Gets a two dimensional grid that contains parts of the specified image. Splits up the specified image into a grid with the defined number of rows and columns.
      Parameters:
      image - The base image that will be split up.
      rows - The number of rows.
      columns - The number or columns.
      Returns:
      A two dimensional array with all the sub-images.
    • horizontalFlip

      public static BufferedImage horizontalFlip(BufferedImage img)
      Flips the specified image horizontally.
      Parameters:
      img - The image to be flipped.
      Returns:
      The horizontally flipped image.
    • verticalFlip

      public static BufferedImage verticalFlip(BufferedImage img)
      Flips the specified image vertically.
      Parameters:
      img - The image to be flipped.
      Returns:
      The vertically flipped image.
    • replaceColors

      public static BufferedImage replaceColors(BufferedImage bufferedImage, Map<Color,Color> colorMappings)
      Replace colors in an image according to a Map containing source colors and target colors, then return the result.
      Parameters:
      bufferedImage - the original image
      colorMappings - a Map with source colors as keys and target colors as values
      Returns:
      a new version of the original image, where the source colors are replaced with the target colors.
    • rotate

      public static BufferedImage rotate(BufferedImage bufferedImage, Rotation rotation)
      Rotate a given BufferedImage by a given Rotation.
      Parameters:
      bufferedImage - the input image
      rotation - the amount of Rotation
      Returns:
      the rotated BufferedImage
    • rotate

      public static BufferedImage rotate(BufferedImage bufferedImage, double radians)
      Rotate a BufferedImage by a given rotation.
      Parameters:
      bufferedImage - the input image
      radians - the amount of rotation in radians.
      Returns:
      the rotated BufferedImage
    • scale

      public static BufferedImage scale(BufferedImage image, int max)
      Scale buffered image so that the longer edge of the image will be set to a given maximum.
      Parameters:
      image - the input BufferedImage to be scaled
      max - the maximum length of the longer image edge
      Returns:
      the scaled BufferedImage.
    • scale

      public static BufferedImage scale(BufferedImage image, double factor)
      Scale buffered image by multiplying its width and height with a given factor. By default, AffineTransformOp.TYPE_NEAREST_NEIGHBOR is used for scaling. If you want smooth interpolation, use one of the method overloads with a custom interpolation parameter.
      Parameters:
      image - the input BufferedImage to be scaled
      factor - the factor by which the image width and height will be multiplied
      Returns:
      the scaled BufferedImage.
    • scale

      public static BufferedImage scale(BufferedImage image, double factor, int interpolation)
      Scale buffered image by multiplying its width and height with a given factor. This default overload will not generate white space around the scaled image to match the full target dimensions.
      Parameters:
      image - the input BufferedImage to be scaled
      factor - the factor by which the image width and height will be multiplied
      interpolation - the interpolation mode used for scaling. Choose one of the following:
      Returns:
      the scaled BufferedImage.
    • scale

      public static BufferedImage scale(BufferedImage image, int width, int height)
      Scale buffered image. The original image ratio will be kept. By default, AffineTransformOp.TYPE_NEAREST_NEIGHBOR is used for scaling. If you want smooth interpolation, use one of the method overloads with a custom interpolation parameter. This default overload will not generate white space around the scaled image to match the full target dimensions.
      Parameters:
      image - the input BufferedImage to be scaled
      width - the width of the scaled image in pixels
      height - the height of the scaled image in pixels
      Returns:
      the scaled BufferedImage.
    • scale

      public static BufferedImage scale(BufferedImage image, int width, int height, boolean keepRatio)
      Scale buffered image. By default, AffineTransformOp.TYPE_NEAREST_NEIGHBOR is used for scaling. If you want smooth interpolation, use one of the method overloads with a custom interpolation parameter. This default overload will not generate white space around the scaled image to match the full target dimensions.
      Parameters:
      image - the input BufferedImage to be scaled
      width - the width of the scaled image in pixels
      height - the height of the scaled image in pixels
      keepRatio - determines whether the original image ratio should be kept while scaling.
      Returns:
      the scaled BufferedImage.
    • scale

      public static BufferedImage scale(BufferedImage image, int width, int height, boolean keepRatio, boolean fill)
      Scale buffered image. By default, AffineTransformOp.TYPE_NEAREST_NEIGHBOR is used for scaling. If you want smooth interpolation, use one of the method overloads with a custom interpolation parameter.
      Parameters:
      image - the input BufferedImage to be scaled
      width - the width of the scaled image in pixels
      height - the height of the scaled image in pixels
      keepRatio - determines whether the original image ratio should be kept while scaling.
      fill - determines whether the target image should contain the transparent space around the scaled image to fill the full target dimensions.
      Returns:
      the scaled BufferedImage.
    • scale

      public static BufferedImage scale(BufferedImage image, int width, int height, int interpolation, boolean keepRatio)
      Scale buffered image. This default overload will not generate white space around the scaled image to match the full target dimensions.
      Parameters:
      image - the input BufferedImage to be scaled
      width - the width of the scaled image in pixels
      height - the height of the scaled image in pixels
      interpolation - the interpolation mode used for scaling. Choose one of the following:
      keepRatio - determines whether the original image ratio should be kept while scaling.
      Returns:
      the scaled BufferedImage.
    • scale

      public static BufferedImage scale(BufferedImage image, int width, int height, int interpolation)
      Scale buffered image. This default overload will keep the original image ratio and not generate white space around the scaled image to match the full target dimensions.
      Parameters:
      image - the input BufferedImage to be scaled
      width - the width of the scaled image in pixels
      height - the height of the scaled image in pixels
      interpolation - the interpolation mode used for scaling. Choose one of the following:
      Returns:
      the scaled BufferedImage.
    • scale

      public static BufferedImage scale(BufferedImage image, int width, int height, int interpolation, boolean keepRatio, boolean fill)
      Scale buffered image.
      Parameters:
      image - the input BufferedImage to be scaled
      width - the width of the scaled image in pixels
      height - the height of the scaled image in pixels
      interpolation - the interpolation mode used for scaling. Choose one of the following:
      keepRatio - determines whether the original image ratio should be kept while scaling.
      fill - determines whether the target image should contain the transparent space around the scaled image to fill the full target dimensions.
      Returns:
      the scaled BufferedImage.
    • setAlpha

      public static BufferedImage setAlpha(Image img, float alpha)
      Sets the opacity of a given image.
      Parameters:
      img - the original Image
      alpha - the constant alpha to be multiplied with the alpha of the source. alpha must be a floating point number in the inclusive range [0.0, 1.0].
      Returns:
      the BufferedImage produced by applying the given alpha on the source image
    • toBufferedImage

      public static BufferedImage toBufferedImage(Image img)
      Converts a given Image instance to a BufferedImage.
      Parameters:
      img - the original Image
      Returns:
      the BufferedImage produced from the original Image
    • toCompatibleImage

      public static BufferedImage toCompatibleImage(BufferedImage image)
      Creates a compatible buffered image that contains the source image.
      Parameters:
      image - the source image
      Returns:
      the compatible buffered image