首页 > 解决方案 > 无法从 BufferedImage 创建 Graphics2d 对象

问题描述

我有一个对象BufferedImage,由函数创建。现在我想在这张图片上画一些线条,所以一开始我创建了这样的对象:ByteArrayInputStream(ImageIO/read)Graphics2d

(defn g2d (.createGraphics image))

这里发生了奇怪的事情,因为我的函数在这一步中冻结了。它永远不会返回,永远不会抛出Exception任何东西。我在服务器上运行这个程序:

openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~18.04.1-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

我怎样才能找到这种冻结的原因?我还检查了这个 Java 版本是否像这样无头:

(java.awt.GraphicsEnvironment/isHeadless)

但是那个方法返回了false

标签: clojurebufferedimagegraphics2d

解决方案


实际上,我必须编写一个单独的 Java 程序才能查看问题所在。在看到 Java 异常后,我设法通过取消设置 Linux 变量 DISPLAY: 来解决这个问题unset DISPLAY


推荐阅读