2011-02-02 16 views
0

私は単純なxpmイメージビューアを構築するタスクを割り当てられています。私はこれのために既存のツールキットライブラリを使用することはできません。私はこのためのJavaを使用したい簡単なxpmイメージを読んでJavaを使って表示するには?

/* XPM */ 
static const char *const hi[] = { 
"7 5 2 1", 
" c black", 
". c yellow", 

".. ..", 
". . . .", 
". . .", 
".  .", 
".  ." 
}; 

- 私はXPM画像は、このような文字列配列(私は1つを書くことができる)であることを知っています。私の質問は -
です。1.このxpmファイルから文字列変数(hi [])を作成してメインクラスで使用するにはどうすればいいですか?
2. GUIで表示するには?
3.その他のディクテーション...これはあなたのために動作するかどう

+0

C/C++コードのように見えますが、完全にオフです。 –

+0

C/C++で教えてください。私はそれから何かを推理しようとします.. – ruben

+0

私はあなたが私が意味したことを誤解したと思います。このファイル形式は、Cプログラミング言語のStringの配列にすぎません。これはC言語でのコーディングを望むかもしれないことを示唆しています(私は何年も前に使用したという暗い想い出を持つ言語です)。 –

答えて

2

最初に、このファイルを行ごとに読み込んで必要なデータを抽出するパーサー(プログラム/メソッド/クラス/もの)を作成する必要があります。

BufferedReader r = 
    new BufferedReader(new InputStreamReader(new FileInputStream(file), 
              "US-ASCII")); 

は、readLine()メソッドを持つBufferedReaderを提供します。 最初にいくつかの行を投げ捨てるか、特別に扱います。そして、行のメイン束が実際のイメージデータです。そこでは、引用符とカンマを捨てて、プレーンなデータを文字列形式にします。

イメージに挿入するには、java.awt.imageのクラス、特にBufferedImageとそれによって使用されるクラス(Raster/WriteableRaster、IndexColorModel)を見てください。

代わりに、String []フォームでデータを保持するだけで、カスタムコンポーネントのpaintメソッドで個々のピクセルにアクセスすることもできます。これは少し遅くなると思います。

+0

これを変数として数えることができればもっと簡単でしょう。 – ruben

+0

ファイルのフォーマットは有効ですCのコードなので、C言語のプログラムに単純にインクルードすることができます(フォーマットの目的) これはJavaではできません(Javaコンパイラが必要です)。それを解析する必要があります。 私の最初のステップの後で、データをString [](あなたが正しいとすれば)として持っているので、変数を持つことができます。 –

1

は知ってはいけないあなたの助けを

多くのおかげ:http://www.bolthole.com/java/Xpm.htmlが、私はそれがJavaの画像に変換された後、あなたがすべき数えますJavaで必要なことを何でもできます。

+1

私はこれのために既存のツールキットライブラリを使うことはできません:(。ありがとうございます。 – ruben

関連する問題