[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情報システムズ