Package org.xhtmlrenderer.util
Class ImageUtil
java.lang.Object
org.xhtmlrenderer.util.ImageUtil
Static utility methods for working with images. Meant to suggest "best practices" for the most straightforward
cases of working with images.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
private static class
AWT-style one-step scaling, using area averagingprivate static class
Fast but decent scalingprivate static class
Step-wise downscalingprivate static class
Old AWT-style scaling, poor qualityprivate static interface
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic void
clearImage
(BufferedImage image) Sets the background of the image to whitestatic BufferedImage
convertToBufferedImage
(Image awtImg, int type) Utility method to convert an AWT Image to a BufferedImage.static BufferedImage
createCompatibleBufferedImage
(int width, int height) Creates a BufferedImage compatible with the local graphics environment; this is a helper method for a common process and just sets up and callsGraphicsConfiguration.createCompatibleImage(int,int,int)
.static BufferedImage
createCompatibleBufferedImage
(int width, int height, int biType) Helper method to instantiate new BufferedImages; if the graphics environment is actually connected to real screen devices (e.g.static BufferedImage
createTransparentImage
(int width, int height) static byte[]
getEmbeddedBase64Image
(String imageDataUri) Get the binary content of an embedded base 64 image.private static GraphicsConfiguration
static BufferedImage
getScaledInstance
(BufferedImage orgImage, int targetWidth, int targetHeight) Scales an image to the requested width and height, assuming these are both >= 1; size given in pixels.static BufferedImage
getScaledInstance
(ScalingOptions opt, BufferedImage orgImage) Scales an image to the requested width and height, assuming these are both >= 1; size given in pixels.static boolean
Detect if given URI represents an embedded base 64 image.static BufferedImage
loadEmbeddedBase64Image
(String imageDataUri) Get the BufferedImage of an embedded base 64 image.static BufferedImage
makeCompatible
(BufferedImage image)
-
Field Details
-
qualities
-
-
Constructor Details
-
ImageUtil
public ImageUtil()
-
-
Method Details
-
clearImage
Sets the background of the image to white -
makeCompatible
-
createCompatibleBufferedImage
@Nonnull @CheckReturnValue public static BufferedImage createCompatibleBufferedImage(int width, int height, int biType) Helper method to instantiate new BufferedImages; if the graphics environment is actually connected to real screen devices (e.g. not in headless mode), the image will be compatible with the screen device allowing for best performance. In a headless environment, simply creates a new BufferedImage. For non-headless environments, this just sets up and callsGraphicsConfiguration.createCompatibleImage(int,int,int)
. The image will not have anything drawn to it, not even a white background; you must do this yourself. TheclearImage(BufferedImage)
method will do this for you if you like.- Parameters:
width
- Target width for the imageheight
- Target height for the imagebiType
- Value from theBufferedImage
class; see docs forBufferedImage(int,int,int)
. The actual type used will be the type specified in this parameter, if in headless mode, or the type most compatible with the screen, if in non-headless more.- Returns:
- A BufferedImage compatible with the screen (best fit).
-
getGraphicsConfiguration
-
createCompatibleBufferedImage
@Nonnull @CheckReturnValue public static BufferedImage createCompatibleBufferedImage(int width, int height) Creates a BufferedImage compatible with the local graphics environment; this is a helper method for a common process and just sets up and callsGraphicsConfiguration.createCompatibleImage(int,int,int)
. The image will support transparent pixels.- Parameters:
width
- Target width for the imageheight
- Target height for the image- Returns:
- A BufferedImage compatible with the screen (best fit) supporting transparent pixels.
-
getScaledInstance
@Nonnull @CheckReturnValue public static BufferedImage getScaledInstance(ScalingOptions opt, BufferedImage orgImage) Scales an image to the requested width and height, assuming these are both >= 1; size given in pixels. If either width or height is <=0, the current image width or height will be used. This method assumes that, at the moment the method is called, the width and height of the image are available; it won't wait for them. Therefore, the method should be called once the image has completely loaded and not before.Override this method in a subclass to optimize image scaling operations; note that the legacy
Image.getScaledInstance(int, int, int)
is considered to perform poorly compared to more recent developed techniques.For a discussion of the options from a member of the Java2D team, see ...
- Parameters:
orgImage
- The image to scale- Returns:
- The scaled image instance.
-
getScaledInstance
@Nonnull @CheckReturnValue public static BufferedImage getScaledInstance(BufferedImage orgImage, int targetWidth, int targetHeight) Scales an image to the requested width and height, assuming these are both >= 1; size given in pixels. If either width or height is <=0, the current image width or height will be used. This method assumes y that, at the moment the method is called, the width and height of the image are available; it won't wait for them. Therefore, the method should be called once the image has completely loaded and not before.Override this method in a subclass to optimize image scaling operations; note that the legacy
Image.getScaledInstance(int, int, int)
is considered to perform poorly compared to more recent developed techniques.For a discussion of the options from a member of the Java2D team, see ...
- Parameters:
orgImage
- The image to scaletargetWidth
- The target width in pixelstargetHeight
- The target height in pixels- Returns:
- The scaled image instance.
-
convertToBufferedImage
@Nonnull @CheckReturnValue public static BufferedImage convertToBufferedImage(Image awtImg, int type) Utility method to convert an AWT Image to a BufferedImage. Size is preserved, BufferedImage is compatible with current display device.- Parameters:
awtImg
- image to convert; if already a BufferedImage, returned unmodifiedtype
- the type of BufferedImage to create; seeBufferedImage(int,int,int)
- Returns:
- BufferedImage with same content.
-
createTransparentImage
@Nonnull @CheckReturnValue public static BufferedImage createTransparentImage(int width, int height) -
isEmbeddedBase64Image
Detect if given URI represents an embedded base 64 image.- Parameters:
uri
- URI of the image- Returns:
- A boolean
-
getEmbeddedBase64Image
Get the binary content of an embedded base 64 image.- Parameters:
imageDataUri
- URI of the embedded image- Returns:
- The binary content
-
loadEmbeddedBase64Image
@Nullable @CheckReturnValue public static BufferedImage loadEmbeddedBase64Image(String imageDataUri) Get the BufferedImage of an embedded base 64 image.- Parameters:
imageDataUri
- URI of the embedded image- Returns:
- The BufferedImage
-