IBS_ENCODE(3X) — NEWS-OS Programmer’s Manual
名称
ibs_encode, ibs_decode − 変化点の配列を扱う関数
形式
int ibs_encode(arg, imgadr, iw, w, x, sline, flag)
int arg;
char ∗imgadr;
int iw, w, x;
int ∗sline;
int flag;
int ibs_decode(arg, imgadr, iw, w, x, sline, flag)
int arg;
char ∗imgadr;
int iw, w, x;
int ∗sline;
int flag;
解説
ibs_encode は imgadr 、 iw、 w、 x によって表される 1 行のイメージを、2 値イメージライブラリの内部表現である 「変化点の配列」にして sline で示される領域に格納します。
iw はイメージ幅(ドット)で、16 の倍数でなければなりません。
x は iw の左側で使用されない部分の長さをドット単位で指示します。
w は iw のなかで、実際に変化点の配列にしようとする長さを指示します。 sline は、( w + 2 ) ∗ 4 バイト以上の領域を 確保しておかなければなりません。
arg、flag は無視されます。
ibs_decode は sline で示される変化点の配列から、 imgadr で示される領域の左端から x ドット以降へ w ドットの長さのイメージとして格納します。
imgadr は、 iw / 8 バイト以上の領域を確保しておかなければなりません。
flag は 0xf00 でマスクされ次のような意味を持ちます。
0x0000イメージデータのない部分はなにも変化しません
0x0100イメージデータのない部分は白で埋められます
0x0200イメージデータのない部分は黒で埋められます
どのような場合でも ( x+w ) が iw をこえてはなりません。
関数の中では、引数のチェックは行わないので、これらを呼ぶ前に チェックを行ってください。
変化点の配列について
変化点とは行を左から右に向かって走査していったときに 直前の画素と色(白 0、黒 1)の異なる点のことをいいます。 また、それを配列にしたものを変化点の配列といいます。
値の範囲は 0 から、 w までで、左から右に向かって増加します。
仮想的に最初の画素の直前に白画素があるものとみなします。
最後の実在の画素の直後には、仮想的に変化点があるものとみなします。
例
012345678
白黒白白黒黒黒白変化点の配列は、1,2,4,7,8
黒黒白黒黒白黒黒変化点の配列は、0,2,3,5,6,8
リターン値
常に 0 を返します。
関連ファイル
/usr/sony/lib/libibs.a
関連事項
ibs_compress(3X), ibs_expand(3X), ibs_zoom(3X)
NEWS-OSRelease 4.1C