将GEF图形另存为图像文件(转)
2005-08-09 12:56
357 查看
在实际中,有需求将我们在GEF中画的图形保存为标准格式的图像文件.在网上找到了一个这样的方法.
public boolean saveImageFile(GraphicalViewer vierer,String fileName){
//save diagram to image file
//根据root part类型,cast 为对应的RootEditPart
ScalableFreeformRootEditPart rootEditPart = (ScalableFreeformRootEditPart)viewer.getEditPartRegistry().get(LayerManager.ID);
IFigure rootFigure = ((LayerManager)rootEditPart).getLayer(LayerConstants.PRINTABLE_LAYERS);//rootEditPart.getFigure();
//用其它的方式获取到root figure也可以...
Rectangle rootFigureBounds = rootFigure.getBounds();
Control figureCanvas = viewer.getControl();
GC figureCanvasGC = new GC(figureCanvas);
Image img = new Image(null, rootFigureBounds.width, rootFigureBounds.height);
GC imageGC = new GC(img);
imageGC.setBackground(figureCanvasGC.getBackground());
imageGC.setForeground(figureCanvasGC.getForeground());
imageGC.setFont(figureCanvasGC.getFont());
imageGC.setLineStyle(figureCanvasGC.getLineStyle());
imageGC.setLineWidth(figureCanvasGC.getLineWidth());
imageGC.setXORMode(figureCanvasGC.getXORMode());
Graphics imgGraphics = new SWTGraphics(imageGC);
rootFigure.paint(imgGraphics);
ImageData[] imgData = new ImageData[1];
imgData[0] = img.getImageData();
ImageLoader imgLoader = new ImageLoader();
imgLoader.data = imgData;
//具体格式见:FileFormat,4为JPEG类型
imgLoader.save(fileName, 4);
figureCanvasGC.dispose();
imageGC.dispose();
img.dispose();
}
public boolean saveImageFile(GraphicalViewer vierer,String fileName){
//save diagram to image file
//根据root part类型,cast 为对应的RootEditPart
ScalableFreeformRootEditPart rootEditPart = (ScalableFreeformRootEditPart)viewer.getEditPartRegistry().get(LayerManager.ID);
IFigure rootFigure = ((LayerManager)rootEditPart).getLayer(LayerConstants.PRINTABLE_LAYERS);//rootEditPart.getFigure();
//用其它的方式获取到root figure也可以...
Rectangle rootFigureBounds = rootFigure.getBounds();
Control figureCanvas = viewer.getControl();
GC figureCanvasGC = new GC(figureCanvas);
Image img = new Image(null, rootFigureBounds.width, rootFigureBounds.height);
GC imageGC = new GC(img);
imageGC.setBackground(figureCanvasGC.getBackground());
imageGC.setForeground(figureCanvasGC.getForeground());
imageGC.setFont(figureCanvasGC.getFont());
imageGC.setLineStyle(figureCanvasGC.getLineStyle());
imageGC.setLineWidth(figureCanvasGC.getLineWidth());
imageGC.setXORMode(figureCanvasGC.getXORMode());
Graphics imgGraphics = new SWTGraphics(imageGC);
rootFigure.paint(imgGraphics);
ImageData[] imgData = new ImageData[1];
imgData[0] = img.getImageData();
ImageLoader imgLoader = new ImageLoader();
imgLoader.data = imgData;
//具体格式见:FileFormat,4为JPEG类型
imgLoader.save(fileName, 4);
figureCanvasGC.dispose();
imageGC.dispose();
img.dispose();
}
相关文章推荐
- 图形图像文件格式分类
- PHP入门之文件、时间、GD图形图像
- Chart图形 [功能帮助类] Assistant创建显示图像的标签和文件 (转载)
- 图像、图形、图片文件格式
- 图形图像文件扩展名一览(转)
- 图形图像文件扩展名一览(转)
- Android开发--图形图像与动画(二)--Animation实现图像的 渐变、缩放、位移、旋转
- Android开发--图形图像与动画(四)--AnimationListener简介
- MATLAB(函数文件、脚文件、三维图形函数)
- rmvb文件只能播放图像不能播放声音的问题
- C# 图形图像
- Android的图形与图像处理之六 SurfaceView实现动画
- 获取mp4文件信息2 - 计算电影图像宽度和高度
- 从DICOM开始入门医学图像处理-3-DICOMDIR文件解析
- php图形图像处理之生成验证码
- bmp图像文件格式说明
- 二进制文件到图像显示文件
- GPU渲染时代——2D图形图像中的应用(一)
- 图形界面应用展示一个立方体和球体 -可以将java3d图形生成图片文件