SWT3.02でPNG 保存

要約すると、SWT3.0.2では出力に非対応のようです。
BufferedImageを作成して、ImageIOを使います。

▲非対応
SWTのImageLoaderクラスで、
loader.save("export.png", SWT.IMAGE_PNG)
というコードを書くと
信じられないことに未実装というエラーがでます。
ソースコードを見るといかな感じ。マジのようです。

void unloadIntoByteStream(ImageData p1) {
SWT.error(SWT.ERROR_NOT_IMPLEMENTED);
}

SWTのImageクラスをBufferedImageに変換
まずは、imageからgetImageDataでimageDataを取り出します。
そのなかに、dataというフィールドがありそこにカラー値が並んでいます。
順番ですが、[青][緑][赤][アルファー]の4つが一つのピクセル情報です。
ただし、値は符号付のようなので、変換します。
そして値を設定します。
効率は悪いのですが、BufferedImageのsetRGBを使います。

▲BufferedImageをPNG形式に出力する
ImageIO.write(bufferedImage,"png",file);

▲コード CPL or Apache2.0
SWTのイメージをBufferedImageに転送
public static void drawAtBufferedImage(BufferedImage bimg,Image image,int x,int y){
ImageData data=image.getImageData();

for(int i=0;i