From 90cfe3d0b7ea380dc1cd449a052e6fab0a11e88c Mon Sep 17 00:00:00 2001 From: Glavo Date: Wed, 13 Mar 2024 16:25:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E7=BD=91=E7=BB=9C=E8=83=8C?= =?UTF-8?q?=E6=99=AF=E6=97=B6=E8=AE=BE=E7=BD=AE=E8=B6=85=E6=97=B6=20(#2856?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/decorator/DecoratorController.java | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/decorator/DecoratorController.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/decorator/DecoratorController.java index 5f5f063fb..5bac81caa 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/decorator/DecoratorController.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/decorator/DecoratorController.java @@ -50,6 +50,10 @@ import org.jackhuang.hmcl.ui.wizard.WizardProvider; import org.jackhuang.hmcl.util.io.NetworkUtils; import java.io.IOException; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLConnection; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -168,8 +172,23 @@ public class DecoratorController { break; case NETWORK: String backgroundImageUrl = config().getBackgroundImageUrl(); - if (backgroundImageUrl != null && NetworkUtils.isURL(backgroundImageUrl)) - image = tryLoadImage(backgroundImageUrl).orElse(null); + if (backgroundImageUrl != null) { + try { + URLConnection connection = NetworkUtils.createConnection(new URL(backgroundImageUrl)); + if (connection instanceof HttpURLConnection) { + connection = NetworkUtils.resolveConnection((HttpURLConnection) connection); + } + + try (InputStream input = connection.getInputStream()) { + image = new Image(input); + if (image.isError()) { + throw image.getException(); + } + } + } catch (Exception e) { + LOG.log(WARNING, "Couldn't load background image", e); + } + } break; case CLASSIC: image = newBuiltinImage("/assets/img/background-classic.jpg");