You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle构建的SpringBoot Kotlin项目无法导入DJL的BufferedImageUtils类

问题原因

有两个核心原因导致你遇到Unresolved reference: BufferedImageUtils报错:

  • 依赖版本不匹配:你当前使用的DJL 0.9.0是非常早期的版本,该版本中ai.djl.modality.cv.util路径下根本不存在BufferedImageUtils类,相关能力被整合在NDImageUtils类中
  • 缺少对应导入语句:即使类存在,你的代码中也没有添加对应类的import声明,也会触发未解析引用报错
解决方案

方案1:适配现有版本无需修改依赖(最快解决)

不需要额外添加任何依赖,直接替换调用的类即可,0.9.0版本的NDImageUtils已经内置了BufferedImage转NDArray的重载方法:

  1. 把代码中BufferedImageUtils.toNDArray直接替换为NDImageUtils.toNDArray
  2. 补充ctx参数的空安全处理避免空指针异常

修改后的processInput代码示例:

override fun processInput(ctx: TranslatorContext?, input: BufferedImage?): NDList {
    var array: NDArray? = NDImageUtils.toNDArray(
        ctx?.ndManager, input, NDImageUtils.Flag.COLOR
    )
    array = NDImageUtils.resize(array, 224).div(255.0f)
    return NDList(array)
}

方案2:升级DJL到稳定新版本(推荐长期使用)

0.9.0版本存在大量功能缺陷和兼容性问题,建议升级到最新稳定版本:

  1. 将Gradle依赖中所有ai.djl:api、ai.djl.tensorflow开头的依赖版本统一升级到0.23.0,tensorflow-native-auto对应升级到2.15.0版本
  2. 在DJLConfig.kt的导入语句部分添加import ai.djl.modality.cv.util.BufferedImageUtils即可正常使用该类

内容的提问来源于stack exchange,提问作者Mama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 21:24:04