Centos 7上使用SWT在图片上绘制文字

Using SWT on Centos 7 to draw text on a picture

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.graphics.ImageLoader;
import org.eclipse.swt.widgets.Display;     

.....

display = new Display();
image = new Image(display, chosenImageFilePath);
gc = new GC(image);
gc.drawText("text to be drawn", 0, 0, SWT.DRAW_TRANSPARENT);    

gc.dispose();
ImageLoader loader = new ImageLoader();
loader.data = new ImageData[] { image.getImageData() };
loader.save(destinationImageFilePath, SWT.IMAGE_JPEG);

image.dispose();
display.dispose();

我正在图片上绘制一些文字,这一切都适用于 windows 使用 eclipse。当我将它导出为 运行nable jar 并通过 cmd 运行 导出时它也有效。

制作该程序的主要目的是让我可以在我的网络应用程序(tomcat、java、jsp、mysql)中使用它,现在运行ning 在 Centos 7 云服务器上。 我在尝试 运行 时收到此错误:

Error I get (image)

我已经下载了 swt-3.6.1-gtk-linux-x86_64 并将其添加到 eclipse 的项目库和构建路径中,但似乎没有修复它。 有任何想法吗?我什至可以在没有显卡的虚拟服务器上 运行 这个吗? PS 我没有展示我的大部分代码(有效且不会导致错误),它们只是计算文本在图片上的绘制位置。

回答我自己的问题。好的,所以...

1.Imported 将此 .jar 放入项目的构建路径中:

    org.eclipse.swt.gtk.linux.x86_64-4.3.jar
  1. 使用

    yum install xorg-11-server-Xvfb
    

我启用了虚拟缓冲区的使用来替代图形环境的不足。

  1. 下一步是激活虚拟显示:

    Xvfb :1 -ac -screen 0 1024x768x8 & export DISPLAY=:1
    

然后我就可以 运行 我的 运行nable jar。

PS 也许有些事情没有得到最好的解释,但这些是让我能够使用我的应用程序的步骤。