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.IconScales 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 inticonHeightprivate inticonWidthprivate javax.swing.ImageIconimageIconprivate java.awt.ImagelastImageprivate doublelastSystemScaleFactorprivate floatlastUserScaleFactor
-
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 intgetIconHeight()intgetIconWidth()protected java.awt.ImagegetResolutionVariant(int destImageWidth, int destImageHeight)private java.awt.image.BufferedImageimage2bufferedImage(java.awt.Image image)voidpaintIcon(java.awt.Component c, java.awt.Graphics g, int x, int y)private voidpaintLastImage(java.awt.Graphics g, int x, int y)private java.awt.image.BufferedImagescaleImage(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:
getIconWidthin interfacejavax.swing.Icon
-
getIconHeight
public int getIconHeight()
- Specified by:
getIconHeightin interfacejavax.swing.Icon
-
paintIcon
public void paintIcon(java.awt.Component c, java.awt.Graphics g, int x, int y)- Specified by:
paintIconin 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)
-
-