[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Java3Djp:01443] Re: Canvas3D の画面を画像データとして保存する方法
★ノ−トパソコンやデジカメが当たる!!ありがとうキャンペ−ン実施中!★
★★★丸紅の新築マンション『ファミ−ル東加賀屋かがやきの街』では★★★
★★★「GateWaySOLO3000」や高画素デジカメが当たる★★★
★★★★プレゼントキャンペ−ン中。さあ!!今すぐアクセス↓↓↓★★★★
−−−−−− http://www.worldnet.ne.jp/famille/default.htm −−−−−
池田@NISです。
>
>えんどうです。
>
>> 現在、Canvas3Dの画面をjpgやBMPの画像ファイルとして保存しようと思っているのですが、
>
>BMPに保存するには JAI (Java Advanced Imaging) を使うことになると
>思います。
>
>> そのためには、BufferedImageを取得しなければなりません。
>> OffScreenの場合、Canvas3D.getOffScreenBuffer()でImageComponent2Dを取得して
>> ImageComponent2D.getImage()によって取得できるようですが、OnScreenの場合はど
>> うしたらよいのでしょうか。
>
>私はやったことが無いのですが、
>BufferedImage に取得するのは ReadRaster というデモサンプル
>(JDKのインストールディレクトリーのdemo/java3d/ReadRasterにある)が
>参考になると思います。
デモサンプルを参考に以下のようなコードでBufferedImageを取得できました。
どうもありがとうございます。
public BufferedImage getImage() {
int width = canvas.getSize().width;
int height = canvas.getSize().height;
ImageComponent2D image = new ImageComponent2D(
ImageComponent.FORMAT_RGB , width , height );
Raster readRaster = new Raster( new Point3f(0.0f,0.0f,0.0f),
Raster.RASTER_COLOR , 0 , 0 , width ,
height , image , null );
GraphicsContext3D gc = canvas.getGraphicsContext3D();
gc.readRaster( readRaster );
return image.getImage();
}
---------------------------------------------------------------
池田 隆志 ( E-Mail : ikeda@xxxxxxxxxxxxxxxxx )
(株)NEC情報システムズ