サポート

Image-Pro
  操作手順書

サポートImage-Pro plus 操作手順書

テキストエディタでユーザー定義フォーマットを定義する

フラットファイルフォーマット (ユーザー定義フォーマット) の定義ファイル(Descriptor)は、一般のテキストエディタ(「メモ帳」など)やImage-Pro Plus"Output Window"(アウトプットウィンドウ)を使用して作成することもできます。定義ファイルの記述内容と、構文等の規則を以下に記します。

注記:定義ファイルのサンプル"IFFFLAT.DES"は、Image-Pro Plusのアプリケーションフォルダ(通常はC:\IPWIN51J)にあります。

定義ファイル(拡張子: ".DES")は、通常のASCIIファイル(テキストファイル)で、画像ファイルに関する下記の情報を納めます。

 

ClassName
{
bits:BitsPerSample
width:ImageWidth
height:ImageHeight
start_offset:ImageOffset
line_offset:LineOffset
sample_offset:GreenOffset
sample_offset1:BlueOffset
next_sample:SameColorOffset
byte:@Position=Value
datatype:ByteOrder
palette:PaletteOffset
}

但し、上の例でClassNameはファイルに入っている画像の形式(例えばIFFCL_BILEVELIFFCL_GRAY)を指定し、またClassNameに続く各記述には、それぞれパラメーター(ImageWidthBitPerSampleなど)が付いていて、ファイルに関する情報を記述しています(例えばwidth:512)。

定義ファイル内のパラメーター値は、定数として入力することも、画像ファイルそれ自体から取り込まれる変数として指定することも可能です。

例えば、

width:100

は画像の幅が100ピクセルであることを示しますが、それに対して

width:@100=sshort

は、画像ファイルの先頭から100バイト目にある標準(最上位ビットが先頭)のショートフォーマット値によって画像の幅が指定されることを示しています。

パラメーターを定数として指定する場合、0xHEX_NUMBER表記法を使用しない限り、Image-Pro Plusはその定数が10進法の数値であると仮定します。画像ファイルから取り込む変数としてパラメーターを指定する場合は、パラメーターを必ず次のフォーマットで入力する必要があります。

@Offset=Datatype

但し、Offsetはファイル内での設定値の位置を示す10進法の値で、ファイル先頭からの(バイト単位の)オフセットとして表現されたもの。

また、Datatypeは、その位置にあるデータのフォーマットを以下のように指定します。

images\img00185.gif

パラメータには算術演算子や定義名を含めることもできます。但し、指定する定義名には数値が与えられている必要があります。

例えば、ラインオフセットを"line_offset:width+10"のような計算式にすることもできます。これが動作するためには、widthにあらかじめ数値を与えておく必要があります(つまり、line_offsetよりも前の箇所にwidthの行を書いておく必要があります)。

以下は、ファイルフォーマット記述の各要素を説明するものです。必ずしも全ての要素を記述する必要はない、という点に注意して下さい。

ClassName

ファイルに入っている画像の形式を指定します。必ず次のいずれかである必要があります。

IFFCL_BILEVEL
IFFCL_GRAY
IFFCL_PALETTE
IFFCL_RGB

この記述は必須です。

注記:IMC_GRAY12ないしIMC_FLOAT画像の読み出し・書き込みを行なう場合は、ClassNameとしてIFFCL_GRAYを指定し、次に12IMC_GRAY12の場合)ないし32IMC_FLOATの場合)を、下のbitsパラメーターに指定して下さい。

 

bits:

サンプル当りのビット数です(ピクセル当りビット数ではありません)。Image-Pro Plusの標準画像形式では、bitsの値として以下のものを使用します。

images\img00186.gif

この記述は必須です。

重要:bitsの記述は、必ず定義ファイル内の最初の記述でなければなりません。

width:

画像の幅です(単位:ピクセル)。

この記述は必須です。

height: 

画像の高さです(単位:ピクセル)。

この記述は必須です。

start_offset: 

最初の画像ラインに対するバイトオフセットです。

この記述は任意です。デフォルト値は0です。

sample_offset: 

R(赤)チャンネルとG(緑)チャンネル間のバイトオフセットです。IFFCL_RGB画像の場合のみ有効です。カラー画像で、GのサンプルRのサンプルの直後に続いていない場合に使用します。プレーナ画像の読み出し時に、Gチャンネルにアクセスするためにも使用します[プレーナ画像の記述サンプルは、Image-Pro Plusのアプリケーションフォルダ(通常はC:\IPWIN51J)にあるファイル"IFFFLAT.DES"ファイルを参照して下さい]

この記述は任意です。デフォルト値は1です。

sample_offset1:

G(緑)チャンネルとB(青)チャンネル間のバイト・オフセットです。IFFCL_RGB画像の場合のみ有効です。カラー画像で、BのサンプルがGのサンプルの直後に続いていない場合に使用します。プレーナ画像の読み出し時に、Bチャンネルにアクセスするためにも使用します[プレーナ画像の記述サンプルは、Image-Pro Plusのアプリケーションフォルダ(通常はC:\IPWIN51J)にあるファイル"IFFFLAT.DES"ファイルを参照して下さい]

この記述は任意です。デフォルト値はsample_offsetと同一の値です。

line_offset:

1つの画像ラインから次のラインへのバイトオフセットを指定します。このパラメーターを使用するのは、アプリケーションの画像ラインに追加情報が埋め込まれている場合です。line_offset値を指定する場合、widthの値と同じか、それ以上の値を指定しなければなりません。次のラインの現在のチャンネルに関するデータにアクセスするには、line_offsetsample_offset値を組み合わせます。

この項目は、任意です。デフォルトは、2 * ((width * bits + 15)/16) です。

next_sample:

同じ色の、次のサンプルに対するオフセットです。

プレーナ画像を使用する場合や、IMC_RGB画像内のチャンク(RGBデータ)間を移動するのに使用します[1つのチャンクに4つのサンプルがある場合に便利です。

プレーナ画像の記述サンプルは、Image-Pro Plusのアプリケーションフォルダ(通常はC:\IPWIN51J)にあるファイル"IFFFLAT.DES"を参照して下さい]

この記述は任意です。デフォルト値は1です。

byte:

(書き込み時に)設定値を書き込む位置と値、又は(読み出し時に)設定値を読み出す位置と値を指定します。パラメーターは、以下のように入力します。

byte:@Position=Value

但し、Positionはファイル先頭からのオフセット指定し、Valueは(書き込み時に)書き込み先の1バイト値を、又は(読み出し時に)その位置から読み出す1バイト値を指定します。

通常、これを使用するのは、画像ファイルに対してフォーマット識別コードやヘッダー情報の読み出し/書き込みを行なう場合です。

byte:記述子は単一バイトしか定義できませんが、その代わりにbyte:記述子は読み出し/書き込みが必要な特定データの数に応じて、いくつでもファイルに入れることができます。例えば、12ビットグレイスケール形式の画像であることを示す標識として、ファイルのバイト02"G12"と書き込みたい場合は、次のようなフォーマットを使用します。

byte:@0='G'
byte:@1='1'
byte:@2='2'

注記:Valueは、10進法(これがデフォルト)、16進法("0xHEX_NUMBER"のフォーマットで)、および上の例のようにキャラクターとして表現できます。

この記述は任意です。

datatype:

サンプル当8ビット以上の(つまりショート・フォーマットまたはロング・フォーマットの整数値を含む)画像データ内のバイト順序を指定します。必ず、次のいずれかである必要があります。

msb_lsb
lsb_msb

但し、lsb_msbは最下位バイトが先頭、msb_lsbは最上位バイトが先頭であることを指定します。

フラットファイルの書き込み時、datatypeはショート(整数)/ロング(整数)の最上位バイトを先頭に書き込むか、末尾に書き込むかを指定します。フラットファイル読み出し時は、ショート/ロングの整数の既存ファイル内での表現方法を記述します。

この記述は任意です。datatypeが設定されていない場合、データはデフォルトでバイナリ・ストリームとして書き込み/読み出しされます。

bit_offset

Nビット/ピクセルの画像を、Mビット/ピクセルの作業領域に読み込む時に(但しM<Nとする)、切り捨てられる下位ビットの数を指定します。bit_offsetの値がNMの差よりも小さい場合、残ったビットは上位ビットの位置から切り捨てられます。

例えば、16ビット/ピクセルの画像を12ビット/ピクセルの作業領域に読み込む場合、

bit_offset: 3

と指定すると、各々の16ビットバイトのうち下位3ビットが切り捨てられます。これは同時に、上位ビットも切り捨てられることを意味します。

16  =    1   +  12  +   3
画像ファイル  最上位ビット   作業領域   最下位ビット

palette: 

パレットデータへのオフセットです。IFFCL_PALETTE形式の画像で使用され、任意でIFFCL_GRAY形式の画像でも使用できます。パレットは、2**2べき乗)ビットのRGB値から成っています。

この記述は任意です。

 

定義ファイルには複数の記述を入れることができ、さらに単一の形式について複数の記述を記入することもできます。例えば、以下に示すファイルには、IFFCL_GRAY画像の記述が2つ、12ビット画像と浮動小数点形式画像の記述がそれぞれ1つずつ入っています。

IFFCL_GRAY
{
bits:12
width:@0=sshort
height:@2=sshort
byte:@3:12
}
IFFCL_GRAY
{
bits:32
width:@0=sshort
height:@2=sshort
byte:@3=32
}

フラットファイルが読み出し用に開かれ、定義ファイル内に複数のフォーマットの記述が入っている場合、Image-Pro Plusは一つ一つの記述を(最初の記述から順に)画像ファイルと比較します。ファイル内のデータと一致する最初の記述が見つかると、それを使用します。ファイルに適合した正しいフォーマットの記述を確実に選択するために、(定義ファイルの技術上必要な要素ではなく)何よりもbyte:記述が必要なのは、このためです。

上の例で、最初のIFFCL_GRAYの記述が使用されるのは、ファイル内のバイト3の位置に「12」の値が見つかった場合のみです。この参照値をフォーマット定義に含めない場合は、いかなるフラットファイルもこの最初の記述に適合することになり、12ビット画像として開かれます。

フラットファイルが書き込み用に開かれる際に、定義ファイルに複数のフォーマット記述が入っていた場合、Image-Pro Plusが選択するフォーマット記述は、画像ファイルのパラメーター・ブロックにある画像形式とビット記述に適合するClassName値とbits値を持つフォーマットです。

フラットファイル記述のサンプルは、Image-Pro Plusに付属しているサンプルファイルの"IFFFLAT.DES" ("IPWIN51J"フォルダ内)にありますので、ご参照下さい。

最後に、定義ファイルが完成したら、次の操作を行なってファイルの保存と登録を行なって下さい。

1. 定義ファイルに".DES"の拡張子を付けてImage-Pro Plusのアプリケーションフォルダ(通常はC:\IPWIN51J)に保存する。ファイルは通常のテキストフォーマット(ASCII形式)で保存します。

2. Image-Pro Plus"Open"(開く) コマンドで"Files of Type"(ファイルの種類)欄で"Flat (FLF)"を選択し、"Options"(オプション)ボタンをクリックする。

3. "Flat (Generic) File Descriptor"ダイアログボックスの"Browse"(参照)ボタンをクリックして定義ファイルを選択する。

4. "File Format"(ファイルフォーマット名)欄でファイルフォーマット名を指定する。

5. "File Extension"(ファイル拡張子)欄ファイルフォーマットの拡張子を指定する。拡張子は".FLF"以外のものを指定して下さい。".FLF"を指定すると動作しないことがあります。また、Windowsの標準拡張子と重複しないように注意して下さい。

6. "OK"ボタンをクリックし、"Open File"(ファイルを開く)ダイアログボックスを閉じて、Image-Pro Plusを一旦終了する。これで、定義ファイルがImage-Pro Plusに登録されました。

この後、Image-Pro Plusを起動すると定義ファイルが使用可能となります。