○タイトル TrFont 24ビットカラーのビットマップファイルからWWCで表示可能な15色パレット*16の画像データに変換します. ○作者情報 Kita-C ○動作環境 PC(Win2000) ○使用方法 コンソール上からTrFontを実行します. TrFont [text file] bmp fileに変換したいファイルをフrパスで指定します texfileファイルに出力ファイル名を指定します.省略時はカレントにa.hという名前で保存されます. 変換可能なファイルは横幅縦幅ともに8の倍数の24bitウィンドウズ標準ビットマップファイルのみです. (224*144を想定していますので,なるべくそのサイズでお願いします) 変換されたテキストファイルには パレットデータの配列(16*16) unsigned short pal[][] フォントデータとパレットデータの対応表 unsigned char palmask[] パックドカラー形式のフォントデータ unsigned long bmp[] 画像データの横幅,縦幅 bmp_width, bmp_height の3つが書き出されます. 変換されたデータを実際にWWで表示するには sampleフォルダに添付してあるhoge.cファイルを見てください.これと変換した ファイル(a.h)を同じフォルダにおいてLSI-Cでコンパイルしてくれれば表示でき るはずです. 同じようにすれば,ほかのプログラムでも使用できるでしょう 具体的には次の関数で表示しています void print() { int i, j; // フォントのセット wwc_font_set_colordata( 0, bmp_width * bmp_height, bmp); // パレット設定 for ( i = 0; i < 16; i++) { for ( j = 0; j < 16; j++) wwc_palette_set_color( i, j, pal[ i][ j]); } for ( j = 0; j < bmp_height; j++) for ( i = 0; i < bmp_width; i++) { int index = i + ( j * bmp_width); screen_fill_char( SCREEN1, i, j, 1, 1, ( index | ( (palmask[ index]) << 9 ))); } } palmaskには,フォントデータのフォントチップの場所に,一対一でどのパレットを使用しているかを 記述してあります.それを使ってスクリーンにセットしてください. ○コンセプト ゲームのタイトルや背景絵の変換用にと思って製作しました. ○技術解説 ビットマップ全体を4096に4ビットシフトして減色します. 8*8のブロックに細かくちぎりそれぞれのチップを16色に減色します このときの減色方法は似通った色2つの加重平均を取り新しい色にしています. 画像全体をチップ上にした後に,それぞれのチップパレットを統合していきます. これも先ほどと同じように一番似通ったパレット二つをあわせていきます チップパレットが16個になったところで処理を終了しています. ○その他 もうすでに,何人かの人が同じような減色のソフトを作ってますので, 残念ながら,二番煎じになってしまいました. 時間がなくて,使い勝手もいまいちのままで悔しいです.もっと早くから 作りはじめとけばよかった