Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ ibs_decode(3X) — NEWS-os 4.1C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ibs_compress(3X)

ibs_expand(3X)

ibs_zoom(3X)

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

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026