BmpViewer : BMPファイルの読み書きツール or クラスライブラリ(JDK1.1)

ツール更新:98,03,11
True Color画像が書けないというしょーもないバグがありました。m(__)m
RGBCounter内の配列の数が1個足りなかったのでした。直しました。

ツールの使い方

Windows:
下記のようなバッチファイル bv.bat を作る。
set CLASSPATH=ディレクトリパス\bmpviewer.jar
java bmpviewer.BmpViewer %1
bv ファイル名 で起動。(ファイル名はなくてもよい)

Unix:

下記のような alias を定義。(csh系)
alias bv 'env CLASSPATH=ディレクトリパス/bmpviewer.jar java bmpviewer.BmpViewer \!*'
bv ファイル名 で起動。(ファイル名はなくてもよい)

Mac:

ごめんなさい。知らないの。

読み書きクラスの使い方(メソッド解説)

BmpReader(読み出しクラス)
BmpReader( File file )
機能:
コンストラクタ。
引数:
File file: 読み出したいBMPファイルの File オブジェクト。
使用例:
BmpReader reader = new BmpReader(new File(ディレクトリ, ファイル名));

public void read() throws IOException
機能:
ファイルの画像イメージを内部(int配列)にすべて読み込む。
初期化の一部だが、サブクラス化の可能性を想定して コンストラクタとは別メソッドにしてある。
使用例:
reader.read();

public int[] getPix()
機能:
int配列の形でイメージを得る。
Componentとの分離のため、Imageオブジェクトを返す仕様にはなっていない。
使用例:
int[] pix = reader.getPix();
Image img = createImage( new MemoryImageSource(
    wid,hei, pix, 0,wid
));

public int getWidth()
機能:
イメージの幅を得る。
使用例:
int wid = reader.getWidth();

public int getHeight()
機能:
イメージの高さを得る。
使用例:
int hei = reader.getHeight();
BmpWriter(書き込みクラス)
BmpWriter( File file, int[] pix, int wid, int hei )
機能:
コンストラクタ。
引数:
File file: 書き込みたいBMPファイルの File オブジェクト。
int[] pix: 書き込みたいイメージ(int配列)。
int wid: イメージの幅。
int hei: イメージの高さ。
使用例:
BmpWriter writer = new BmpWriter(new File(ディレクトリ, ファイル名), pix, wid, hei);

public void write() throws IOException
機能:
画像イメージをファイルにすべて書き込む。
実際に使用されている色数をカウントし、最適な色数のファイル形式が選ばれる。
使用例:
writer.write();

ソース

ユーザーインターフェイス用クラス:
 (というより「BMPファイルアクセス用クラス」のテスト用) BMPファイルアクセス用クラス:
読み出しだけ行う場合は、RGBCounter.java と BmpWriter.java は不要。
書き込みだけ行う場合は、BmpReader.java は不要。

ダウンロード