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();
我在图片上绘制了一些文字,它们都在使用eclipse的窗口上运行。它也可以在我将其导出为可运行的jar时运行,并通过cmd运行它。
制作程序的主要目的是让我可以在我的网络应用程序(tomcat,java,jsp,mysql)中使用它,它现在在Centos 7云服务器上运行。 尝试运行它时出现此错误:
我已经下载了swt-3.6.1-gtk-linux-x86_64并将其添加到eclipse的项目库和构建路径中,但它似乎没有解决它。 有任何想法吗?我甚至可以在虚拟服务器上运行它,那里没有显卡吗? PS我没有显示我的大部分代码(有效并且不会导致错误),只是计算出在图片上绘制文本的位置。
答案 0 :(得分:2)
回答我自己的问题。好吧,所以...
1.将.jar导入项目的构建路径:
org.eclipse.swt.gtk.linux.x86_64-4.3.jar
使用
yum install xorg-11-server-Xvfb
我已启用虚拟缓冲区来取代缺少图形环境。
下一步是激活虚拟显示器:
Xvfb :1 -ac -screen 0 1024x768x8 & export DISPLAY=:1
然后我就可以运行我的runnable jar了。
PS或许有些东西没有解释最好的方法,但这些是让我使用我的应用程序的步骤。