2011-01-19 6 views
4

私はビットマップを描きたいと思います。手動で各ポイントの色を指定します(言い換えれば、RGB値の2D配列をPNG(または他のロスレスの真のカラービットマップフォーマット)ファイルに保存することです) 。Scalaでビットマップを描画するには?

与えられた座標の画像の上にいくつかのテキスト(指定されたサイズのフォントを持つ)を印刷する機能もあります。

これを実装する方法は?

答えて

7

Java標準ライブラリImageIOクラスを使用できます。これは、例えばRenderedImageをエンコードしてPNG形式の出力ストリームに書き込むことができる静的なwriteメソッドを提供します。 RenderedImageの場合は、簡単にBufferedImageクラスを使用できます。個々のピクセルの色を直接操作する方法はsetRGBです。また、BufferedImage.getGraphics()を呼び出すこともできます。Graphicsのインスタンスが返されます。AWTコンポーネントの場合と同様に、あらゆる種類のシェイプやテキスト、GUIコンポーネント全体を描画できます。

これは通常のJavaのものです。 Scalaは特別なラッパーを提供していませんし、努力する価値があるとは思っていません。

+0

絶対に。これは簡単なものです。 Interopはscalaの強みの1つであり、ここでラッパーを書くことはほとんど役に立ちません。 –

2

Java Advanced Imaging APIなどのJavaライブラリを使用する必要があります。それはよく書かれている。

+0

このようなプリミティブなタスクのScalaネイティブ(またはラッパー)実装は実際にはありませんか? – Ivan

+1

processing.orgからの処理は、2Dのもののための非常に素晴らしいJavaライブラリであり、Scalaで完全に動作可能です。 – nullspace

+0

私はこのような基本的な処理のためにProcessingを使うことは、蚊に対して重い砲兵を使うようなものだと思います。 – Ivan

関連する問題