Package com.formdev.flatlaf.util
Class ScaledImageIcon
- java.lang.Object
-
- com.formdev.flatlaf.util.ScaledImageIcon
-
- All Implemented Interfaces:
javax.swing.Icon
- Direct Known Subclasses:
FlatTitlePaneIcon
public class ScaledImageIcon extends java.lang.Object implements javax.swing.Icon
Scales the given image icon using the system and user scale factors and paints the icon at system scale factor 1x. This gives best scaling quality. If the given image icon supports multiple resolutions, the best resolution variant is used. The last scaled image is cached for faster repainting.
-
-
Field Summary
Fields Modifier and Type Field Description private int
iconHeight
private int
iconWidth
private javax.swing.ImageIcon
imageIcon
private java.awt.Image
lastImage
private double
lastSystemScaleFactor
private float
lastUserScaleFactor
-
Constructor Summary
Constructors Constructor Description ScaledImageIcon(javax.swing.ImageIcon imageIcon)
ScaledImageIcon(javax.swing.ImageIcon imageIcon, int iconWidth, int iconHeight)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getIconHeight()
int
getIconWidth()
protected java.awt.Image
getResolutionVariant(int destImageWidth, int destImageHeight)
private java.awt.image.BufferedImage
image2bufferedImage(java.awt.Image image)
void
paintIcon(java.awt.Component c, java.awt.Graphics g, int x, int y)
private void
paintLastImage(java.awt.Graphics g, int x, int y)
private java.awt.image.BufferedImage
scaleImage(java.awt.image.BufferedImage image, int targetWidth, int targetHeight, java.lang.Object scalingInterpolation)
Scales the given image to the target dimensions.
-
-
-
Field Detail
-
imageIcon
private final javax.swing.ImageIcon imageIcon
-
iconWidth
private final int iconWidth
-
iconHeight
private final int iconHeight
-
lastSystemScaleFactor
private double lastSystemScaleFactor
-
lastUserScaleFactor
private float lastUserScaleFactor
-
lastImage
private java.awt.Image lastImage
-
-
Method Detail
-
getIconWidth
public int getIconWidth()
- Specified by:
getIconWidth
in interfacejavax.swing.Icon
-
getIconHeight
public int getIconHeight()
- Specified by:
getIconHeight
in interfacejavax.swing.Icon
-
paintIcon
public void paintIcon(java.awt.Component c, java.awt.Graphics g, int x, int y)
- Specified by:
paintIcon
in interfacejavax.swing.Icon
-
getResolutionVariant
protected java.awt.Image getResolutionVariant(int destImageWidth, int destImageHeight)
-
paintLastImage
private void paintLastImage(java.awt.Graphics g, int x, int y)
-
scaleImage
private java.awt.image.BufferedImage scaleImage(java.awt.image.BufferedImage image, int targetWidth, int targetHeight, java.lang.Object scalingInterpolation)
Scales the given image to the target dimensions. This is the same what imgscalr library (https://github.com/rkalla/imgscalr) would do when invoking Scalr.resize().
-
image2bufferedImage
private java.awt.image.BufferedImage image2bufferedImage(java.awt.Image image)
-
-