Java中如何将本地文件路径字符串转换为Image图像对象
本地路径字符串转Image对象实现方案
你给出的路径包含\.冗余相对路径标识,需要先做路径规范化处理后再读取,以下是不同场景下的实现方式:
场景1:使用AWT内置Image(通用桌面图像处理场景)
这是Java标准库自带的图像处理方案,JDK8及之前版本默认支持,高版本JDK模块化开发需引入java.desktop模块:
import javax.imageio.ImageIO; import java.awt.Image; import java.io.File; import java.io.IOException; import java.nio.file.Path; import java.nio.file.Paths; public class LoadImageDemo { public static void main(String[] args) throws IOException { // 1. 规范化路径,自动处理\.冗余标识 String rawPath = "D:\\Projects\\Epic MC mod\\fabric-example-mod\\run\\.\\screenshots\\2021-06-13_20.24.30.png"; Path normalizedPath = Paths.get(rawPath).normalize(); File imageFile = normalizedPath.toFile(); // 2. 读取为Image对象 Image image = ImageIO.read(imageFile); } }
- 如果读取返回
null,可优先检查对应路径文件是否存在、是否为合法PNG格式图片
场景2:使用JavaFX Image(JavaFX应用开发场景)
如果是JavaFX项目开发,可使用JavaFX内置的Image类实现:
import javafx.scene.image.Image; import java.nio.file.Path; import java.nio.file.Paths; public class LoadFxImageDemo { public static void main(String[] args) { String rawPath = "D:\\Projects\\Epic MC mod\\fabric-example-mod\\run\\.\\screenshots\\2021-06-13_20.24.30.png"; Path normalizedPath = Paths.get(rawPath).normalize(); // 转为file协议URI读取图片 Image image = new Image(normalizedPath.toUri().toString()); } }
- 需提前引入JavaFX对应的
javafx.graphics模块依赖 - 加载失败可调用
image.isError()方法排查错误原因
内容的提问来源于stack exchange,提问作者gjoe
相关产品推荐
相关产品推荐

