java - Java 中加载图像的高效跨平台方法

标签 java image text cross-platform embedded-resource

我正在学习用 Java 创建游戏,需要在制作动画之前加载多个图像。这就是我现在正在做的事情:

bg = new ImageIcon(System.getProperty("user.dir")+"/src/img/bg.jpg").getImage();

但显然它有很多缺点。首先,它又长又丑,而且我怀疑速度很慢。 此外,正斜杠“/”仅适用于 Mac 或 Linux,而在 Windows 上,它将使用反斜杠。

编辑:正如下面塞缪尔·罗西尔所纠正的那样,正斜杠“/”实际上在 Windows 上有效。

我想知道是否有加载图像,这些图像位于应用程序目录中,并且不会以更优雅的方式更改,并且是跨平台的?

加载文本文件怎么样?它们有什么不同吗?

最佳答案

查看信息。上embedded resources 。请注意,大多数接受 File 的方法和构造函数也将接受 InputStreamURL。嵌入资源是只读的。


关于文件(在极少数情况下,您可能会使用它们并且必须从 String 形成路径)。

String fileSep = System.petProperty("file.separator");
bg = new ImageIcon(System.getProperty("user.dir")+
    fileSep+
    "src"+
    fileSep+
    "img"+
    fileSep+
    "bg.jpg").getImage();

这是获取使用文件系统正确分隔符的目录路径的一种方法。 File 类还提供了方便的构造函数,例如 new File(parent,child)这将插入正确的分隔符。

顺便说一句,我强烈认为 J2SE 中接受用于表示 File 路径的 String 的所有方法和构造函数都应该被弃用。如果它需要一个File,给它一个File并完成它。

关于java - Java 中加载图像的高效跨平台方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10845296/

相关文章:

java - 创建一个页面,在主要 Activity 开始之前询问用户详细信息

java - Google Drives SDK 和 powerpoint

java - 如何以编程方式将照片上传到图像托管服务器?

linux - 使用 linux 将字符串 dd mm yyyy 转换为 yyyymmdd

Java多线程端口扫描器

java - 设置 JTextarea 的行间距

c# - 如何将两个图像合并为一个 Jpeg

android - 图像格式RGB888和ARGB8888的区别

java - 如何提取rtf表

java - 附加到 JTextArea 不会在 '\n' 上创建换行符