我正在从这样的 URL 加载图像:
new ImageIcon(new URL(url))
该网址类似于http://example.com/image.png,因此是互联网上的图像。
这工作得很好,但是我收到了一些关于我的程序用户的报告,他们在 Java 8u20 的视网膜显示器上使用该程序时(可能会更高版本)得到奇怪的图像而不是常规图像。
我确定他们得到的奇怪图像是一个图像,如果没有找到图像,加载图像的 CDN 会自动重定向到该图像。经过一番研究,我发现较新版本的Java在Toolkit.getImage(URL url)
使用.new ImageIcon(URL url)
问题当然是如果没有找到图像,CDN 实际上会返回一个有效的图像,所以 Java 可能认为它实际上找到了一个更高分辨率的图像以在视网膜显示器上使用。我的程序中的其他图像也ImageIcon
以相同的方式使用,但从另一个来源加载,似乎工作得很好。
现在的问题是,解决这个问题的最佳方法是什么?我无权访问 CDN,因此我必须阻止 Java 尝试以某种方式加载第二个 URL(如果这确实是问题,但看起来确实是这样)。不幸的是,我没有一台计算机可以对此进行测试,因此很难判断哪种解决方案可行。