为什么我在sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice(未知来源)收到java.awt.HeadlessException?

时间:2015-05-06 18:59:28

标签: java linux awt graphics2d

我需要在linux非图形环境中旋转一些图像。 所以当我执行:

private static BufferedImage tilt(BufferedImage image, double angle) {
    double sin = Math.abs(Math.sin(angle)), cos = Math.abs(Math.cos(angle));
    int w = image.getWidth(), h = image.getHeight();
    if (w > h) {
        int neww = (int)Math.floor(w*cos+h*sin), newh = (int)Math.floor(h*cos+w*sin);
        GraphicsConfiguration gc = getDefaultConfiguration();
        BufferedImage result = gc.createCompatibleImage(neww, newh, Transparency.TRANSLUCENT);
        Graphics2D g = result.createGraphics();
        g.translate((neww-w)/2, (newh-h)/2);
        g.rotate(angle, w/2, h/2);
        g.drawRenderedImage(image, null);
        g.dispose();
        return result;
    } else {
        return null;
    }
}

private static GraphicsConfiguration getDefaultConfiguration() {
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    GraphicsDevice gd = ge.getDefaultScreenDevice();
    return gd.getDefaultConfiguration();
}

我在sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice(未知来源)获得java.awt.HeadlessException。

我已经设置了我的显示环境变量: export DISPLAY = localhost:0.0 我还设置了java.awt.headless = true 它没用?

那么我还需要做些什么才能得到异常? 是否有另一种方法可以在没有awt类的情况下旋转图像?

提前致谢。

0 个答案:

没有答案