diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/ImageComponent.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/ImageComponent.java index 39ec431697..46f07f0515 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/ImageComponent.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/components/ImageComponent.java @@ -24,35 +24,37 @@ */ package net.runelite.client.ui.overlay.components; +import com.google.common.base.MoreObjects; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.Point; import java.awt.Rectangle; import java.awt.image.BufferedImage; import lombok.Getter; +import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.Setter; +import net.runelite.client.util.ImageUtil; @RequiredArgsConstructor -@Setter public class ImageComponent implements LayoutableRenderableEntity { + @NonNull private final BufferedImage image; + private BufferedImage scaledImage; + @Getter private final Rectangle bounds = new Rectangle(); + @Setter private Point preferredLocation = new Point(); @Override public Dimension render(Graphics2D graphics) { - if (image == null) - { - return null; - } - - graphics.drawImage(image, preferredLocation.x, preferredLocation.y, null); + BufferedImage i = MoreObjects.firstNonNull(scaledImage, image); + graphics.drawImage(i, preferredLocation.x, preferredLocation.y, null); final Dimension dimension = new Dimension(image.getWidth(), image.getHeight()); bounds.setLocation(preferredLocation); bounds.setSize(dimension); @@ -60,8 +62,15 @@ public class ImageComponent implements LayoutableRenderableEntity } @Override - public void setPreferredSize(Dimension dimension) + public void setPreferredSize(Dimension preferredSize) { - // Just use image dimensions for now + if (preferredSize == null || (preferredSize.width == image.getWidth() && preferredSize.height == image.getHeight())) + { + scaledImage = null; + } + else + { + scaledImage = ImageUtil.resizeImage(image, preferredSize.width, preferredSize.height); + } } -} \ No newline at end of file +}