diff --git a/Mage.Client/src/main/java/org/mage/plugins/theme/ThemePluginImpl.java b/Mage.Client/src/main/java/org/mage/plugins/theme/ThemePluginImpl.java index 34631c40516..dbcc8e01760 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/theme/ThemePluginImpl.java +++ b/Mage.Client/src/main/java/org/mage/plugins/theme/ThemePluginImpl.java @@ -82,7 +82,7 @@ public class ThemePluginImpl implements ThemePlugin { } if (ui.containsKey("gamePanel") && ui.containsKey("jLayeredPane")) { - ImagePanel bgPanel = new ImagePanel(backgroundImage, ImagePanelStyle.TILED); + ImagePanel bgPanel = new ImagePanel(backgroundImage, ImagePanelStyle.COVER); // TODO: research - is all components used? And why it make transparent? unsetOpaque(ui.get("splitChatAndLogs")); diff --git a/Mage.Common/src/main/java/mage/components/ImagePanel.java b/Mage.Common/src/main/java/mage/components/ImagePanel.java index 0699e6d0cb4..dc1c317efb8 100644 --- a/Mage.Common/src/main/java/mage/components/ImagePanel.java +++ b/Mage.Common/src/main/java/mage/components/ImagePanel.java @@ -78,6 +78,9 @@ public class ImagePanel extends JPanel { case ACTUAL: drawActual(g); break; + case COVER: + drawCover(g); + break; } } @@ -99,4 +102,25 @@ public class ImagePanel extends JPanel { float y = (d.height - image.getHeight(null)) * alignmentY; g.drawImage(image, (int) x, (int) y, this); } + + private void drawCover(Graphics g) { + Dimension d = getSize(); + int imageWidth = image.getWidth(null); + int imageHeight = image.getHeight(null); + + // Calculate scale to cover the entire panel while maintaining aspect ratio + double scaleX = (double) d.width / imageWidth; + double scaleY = (double) d.height / imageHeight; + double scale = Math.max(scaleX, scaleY); + + // Calculate the scaled dimensions + int scaledWidth = (int) (imageWidth * scale); + int scaledHeight = (int) (imageHeight * scale); + + // Center the image + int x = (d.width - scaledWidth) / 2; + int y = (d.height - scaledHeight) / 2; + + g.drawImage(image, x, y, scaledWidth, scaledHeight, null); + } } diff --git a/Mage.Common/src/main/java/mage/components/ImagePanelStyle.java b/Mage.Common/src/main/java/mage/components/ImagePanelStyle.java index 01e1b4557bc..7e1a17839d1 100644 --- a/Mage.Common/src/main/java/mage/components/ImagePanelStyle.java +++ b/Mage.Common/src/main/java/mage/components/ImagePanelStyle.java @@ -4,5 +4,5 @@ package mage.components; * Created by IGOUDT on 7-3-2017. */ public enum ImagePanelStyle { - TILED, SCALED, ACTUAL + TILED, SCALED, ACTUAL, COVER }