Package com.openhtmltopdf.util
Class ImageUtil
- java.lang.Object
-
- com.openhtmltopdf.util.ImageUtil
-
public class ImageUtil extends Object
Static utility methods for working with images. Meant to suggest "best practices" for the most straightforward cases of working with images.- Author:
- pwright
-
-
Constructor Summary
Constructors Constructor Description ImageUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static BufferedImageconvertToBufferedImage(Image awtImg, int type)Utility method to convert an AWT Image to a BufferedImage.static BufferedImagecreateCompatibleBufferedImage(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 BufferedImagecreateTransparentImage(int width, int height)static byte[]fromBase64Encoded(String b64encoded)static byte[]getEmbeddedBase64Image(String imageDataUri)Get the binary content of an embedded base 64 image.static BufferedImagegetScaledInstance(ScalingOptions opt, BufferedImage orgImage)Scales an image to the requested width and height, assuming these are both >= 1; size given in pixels.static BufferedImagegetScaledInstance(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 BufferedImagemakeCompatible(BufferedImage bimg)
-
-
-
Method Detail
-
makeCompatible
public static BufferedImage makeCompatible(BufferedImage bimg)
-
createCompatibleBufferedImage
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.- Parameters:
width- Target width for the imageheight- Target height for the imagebiType- Value from theBufferedImageclass; 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).
-
getScaledInstance
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 legacyImage.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 http://today.java.net/pub/a/today/2007/04/03/perils-of-image-getscaledinstance.html- Parameters:
orgImage- The image to scale- Returns:
- The scaled image instance.
-
getScaledInstance
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 legacyImage.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 http://today.java.net/pub/a/today/2007/04/03/perils-of-image-getscaledinstance.html- Parameters:
orgImage- The image to scaletargetWidth- The target width in pixelstargetHeight- The target height in pixels- Returns:
- The scaled image instance.
-
convertToBufferedImage
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
public static BufferedImage createTransparentImage(int width, int height)
-
fromBase64Encoded
public static byte[] fromBase64Encoded(String b64encoded)
-
getEmbeddedBase64Image
public static byte[] getEmbeddedBase64Image(String imageDataUri)
Get the binary content of an embedded base 64 image.- Parameters:
imageDataUri- URI of the embedded image- Returns:
- The binary content
-
-