0

我正在测试 Jimp.js 的图像处理(使用带有 react-scripts 的 React,npm:6.14.4,node:v12.16.3)

一切都很顺利,除了在加载的图像上写文字

import Jimp from 'jimp'

Jimp.read(image)
      .then(image => {
        console.log('image loaded', image)
        Jimp.loadFont(Jimp.FONT_SANS_32_WHITE).then(font => {
          console.log('font loaded', font)
          image.print(font, 10, 10, 'Hello world that wraps!', 12)
          // write image
        })
      })

这会在 load-bmfont 模块第 71 行的 browser.js 中引发错误“错误解析字体格式错误的文件 - 无元素”,并且不执行日志“加载字体”。

谷歌搜索无济于事,我只找到了 2,3 项,与使用自定义字体相关联 - 但我使用 Jimp 的标准字体。(使用 BMFont 文件而不是 Jimp 标准字体没有帮助)

我的第一个想法是浏览器中的 React 应用程序中出现的错误,所以我编写了一个 Jest 测试,看看它是否在没有浏览器上下文的情况下工作,但它就这样失败了。

有什么想法吗?

4

1 回答 1

0

已解决...我在 JSP 文件中的 Java Web 框架中使用 React 应用程序。

Jimp.loadFont(Jimp.FONT_SANS_32_WHITE)

在 webapp 不存在的路径中搜索字体。

将字体文件移动到具有上下文根的可访问路径

Jimp.loadFont(`${CONTEXT_ROOT}/foo/bar/font.font`) works.
于 2020-08-18T08:21:15.653 回答