最近在GEF中用到将Figure保存为图片的技术,原本保存为jpg格式,用户看了说失真,要求生成eps。
去网上搜了下,没有这方面的文章,遂将自己搞出来的东东分享出来。
去老外的网上搜了下,在java中有awt生成eps这样的jar,jar中就三个类,用到的是EpsGraphics2D,还有一个Exception和一个保存格式用的Document类。所以我们用的就是EpsGraphics2D。
如果,要保存的是AWT类的图像,可以直接用,这个是转为awt设计的。但本人做的是Eclipse plugin开发用的SWT,需要将AWT Image--> SWT Image. 用到类ConvertSWTImagetoAWTImage 。
调用生成代码如下:
[code="java"]Image swtImage = createImage(figure);
BufferedImage awtImage = ConvertSWTImagetoAWTImage.convertToAWT(swtImage.getImageData());
EpsGraphics2D graphics2d = new EpsGraphics2D();
try {
graphics2d.drawImage(awtImage, -1, -1, null);
} catch (Exception e1) {
e1.printStackTrace();
}
try {
FileWriter fos = new FileWriter(path);
fos.write(graphics2d.toString());
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}[/code]
用到的jar及ConvertSWTImagetoAWTImage 文件如下附件:
谢谢
[url]http://www.imilo.cn/[/url]
去网上搜了下,没有这方面的文章,遂将自己搞出来的东东分享出来。
去老外的网上搜了下,在java中有awt生成eps这样的jar,jar中就三个类,用到的是EpsGraphics2D,还有一个Exception和一个保存格式用的Document类。所以我们用的就是EpsGraphics2D。
如果,要保存的是AWT类的图像,可以直接用,这个是转为awt设计的。但本人做的是Eclipse plugin开发用的SWT,需要将AWT Image--> SWT Image. 用到类ConvertSWTImagetoAWTImage 。
调用生成代码如下:
[code="java"]Image swtImage = createImage(figure);
BufferedImage awtImage = ConvertSWTImagetoAWTImage.convertToAWT(swtImage.getImageData());
EpsGraphics2D graphics2d = new EpsGraphics2D();
try {
graphics2d.drawImage(awtImage, -1, -1, null);
} catch (Exception e1) {
e1.printStackTrace();
}
try {
FileWriter fos = new FileWriter(path);
fos.write(graphics2d.toString());
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}[/code]
用到的jar及ConvertSWTImagetoAWTImage 文件如下附件:
谢谢
[url]http://www.imilo.cn/[/url]