天天看點

GEF常見問題8:導出到圖檔

利用org.eclipse.draw2d.SWTGraphics類和org.eclipse.swt.graphics.ImageLoader類可以實作把畫布導出到圖檔檔案的功能,原理是在記憶體裡建立一個空白的Image,然後把Diagram畫到它上面,最後儲存到指定檔案和格式。

我們可以把導出工作分為兩部分,第一部分負責提供要導出的IFigure執行個體(若要導出整個畫布,應從GraphicalViewer獲得PRINTABLE_LAYERS,否則會丢失畫布上的連線),并負責将得到的圖檔資料寫入檔案;第二部分負責IFigure執行個體到圖檔資料的轉換過程。以下是前者的示例代碼:

上面代碼裡調用的createImage()方法是實際在記憶體裡作畫并轉換為可寫入為檔案的二進制流的地方,代碼如下所示:

圖1 運作後增加了導出功能按鈕