【问题标题】:What format of large background image provide in jar?jar 中提供什么格式的大背景图片?
【发布时间】:2012-12-31 22:45:57
【问题描述】:

我的 Java Swing 应用程序具有 JFrame 的最大化边界。到目前为止,该应用程序以 jar 文件的形式分发。

最初对于背景图像,我使用了png 格式的一些大型任意图像文件。而且我确实有一个代码可以加载并将图像设置为JFrame的背景。

现在,我从设计师那里得到了cdrpng 格式的新图像。 Png 图像现在是 5 x 4 千像素。

我的要求:

  1. 最小化图像文件大小
  2. 支持不同的屏幕分辨率

什么是满足要求的最佳选择?

  • 将文件大小调整为 1920x1080 并保持为png,并在运行时根据分辨率调整为更小的图像
  • 将文件保存为cdr 或其他一些矢量格式。但我不确定 Java 是否可以轻松读取并将其转换为 BufferedImage

【问题讨论】:

    标签: java swing jar bufferedimage javax.imageio


    【解决方案1】:

    如果您有机会获得.svg 中的文件,这将最符合您的需求。然后,您可以查看 Apache's Batik 库及其光栅器来渲染图像。

    【讨论】:

    • 最通用的方法是什么?为什么是 svg 而不是 eps?
    【解决方案2】:

    什么是满足要求的最佳选择?

    将文件大小调整为 1920x1080 并保持为png,并在运行时调整大小为更小的图像..

    ..or larger - 随着时间的推移,屏幕分辨率越来越大(&更大)..

    .. 如果需要根据分辨率。

    是的。我认为这是最好的选择。

    在运行时加载一个库以将 SVG 或 EPS 渲染到 BufferedImage 似乎对于 BG 图像来说太过分了。

    部署

    应用程序作为 jar 文件分发..

    使用图像的应用程序通常具有 GUI。做这个应用程序。有图形用户界面吗?

    如果是这样,最好使用Java Web Start 进行部署。

    JWS 的 Jars 可以以编程方式延迟下载,并在更新时刷新,因此图像可能应该位于其自己的单独 Jar 中,以避免每次修复错误时都下载新版本。放置图像(或一般压缩的媒体文件 - 声音、视频等)时,请使用“无压缩”。 Zip 对这些已经高度优化或至少非常专业的数据格式没有任何好处。

    【讨论】:

    • 是的,我现在已经将它部署为 JWS。我有一张背景图片和许多小物品,即卡片。为什么它应该是一个罐子,而不仅仅是服务器上的文件夹?我应该为 bg 和其他图像制作两个单独的 jar 还是将它们打包在一起?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 2013-10-12
    • 2023-04-10
    • 2021-02-05
    • 2021-11-04
    • 2018-07-17
    • 2015-08-24
    相关资源
    最近更新 更多