1#ifndef  __JBXL_CPP_GRAPHIC_IO_H_ 
    2#define  __JBXL_CPP_GRAPHIC_IO_H_ 
   14#pragma warning(disable:4995) 
   97int     dicomHeader(FILE* fp, 
int fsize, 
int* dsize, 
int* xsize, 
int* ysize, 
int* depth, 
double* rzxy);
 
  195    int chk = hd.
kind & 0x00ff;
 
  197        if (chd!=NULL) *chd = hd;
 
  207        if (counter!=NULL) counter->
SetTitle(
"画像データへ変換");
 
  212        chd->
grptr = chd->buf = NULL;
 
  217    if (vp.
gp==NULL) 
return vp;
 
 
  260    int   i, k, l, m, chk, kind;
 
  261    int   xsize, ysize, zsize, nsize, psize;    
 
  268        DEBUG_MESG(
"readGraphicSlices: Called with kind = 0x%04x\n", chd->kind);
 
  271        DEBUG_MESG(
"readGraphicSlices: Called with NULL Header\n");
 
  282    chk = dhd.
kind & 0x00ff;
 
  294    nsize = zsize*(
Xabs(fnd - fst) + 1);
 
  295    psize = xsize*ysize*zsize;
 
  301    if (nsize>=10 && cnt) {
 
  305            counter->
SetMax(nsize/10);
 
  314            double rzm = rz[8]/(double)rz[9];
 
  315            if (rzm<5.0 && rzm>0.) gd.
RZxy = rzm;
 
  334    if (chd!=NULL) dhd.
kind |= chd->kind & 0xff00;      
 
  338    gd.
getm(xsize, ysize, nsize);
 
  339    if (gd.
isNull()) 
return gd;
 
  349        chk = hd.
kind & 0x00ff;
 
  351            DEBUG_MESG(
"readGraphicSlices: データ読み込みエラー: n = %d, kind = %d\n", k, hd.
kind);
 
  377        for (i=0; i<psize; i++) gd.
gp[i + psize*l] = vp.
gp[i] + 
ZeroBase;
 
  394        if (counter!=NULL && l%10==0) {
 
  411            if (counter!=NULL) counter->
SetTitle(
"Converting Data");
 
 
  461    if (fnum<0)            fnum = 0;
 
  462    else if (fnum>vp.
zs-1) fnum = vp.
zs - 1;
 
  463    if (tnum<fnum)         tnum = fnum;
 
  464    else if (tnum>vp.
zs-1) tnum = vp.
zs - 1;
 
  479    hd.
zsize = tnum - fnum + 1; 
 
  480    hd.
depth = 
sizeof(T)*8;
 
  525        if (hd.
zsize>=10 && cnt) {
 
  533        char filename[
LNAME];
 
  538        for (
int i=0; i<num; i++) {
 
  543            if (counter!=NULL && i%10==0) {
 
  546                    if (hd.
buf!=NULL) free(hd.
buf);
 
  553        if (counter!=NULL) counter->
PutFill();
 
  556    if (hd.
buf!=NULL) free(hd.
buf);
 
 
  569    FILE* fp = fopen(fname, 
"wb");
 
 
  590    fp = fopen(fname, 
"rb");
 
  591    if (fp==NULL) 
return vp;
 
 
#define CH2MG_NOPARM
パラメータ処理(Z軸の歪, rboundの処理)をしない.
 
virtual void StepIt(int n=1)
カウンタのメモリを増やす
 
virtual void SetMax(int m)
カウンタの最大値(最終目標)を設定
 
virtual void DeleteChildCounter()
子カウンタの削除(有効領域の無効化)
 
virtual CVCounter * MakeChildCounter(int n)
子カウンタの作成(有効領域を再定義)
 
virtual void PutFill()
取り敢えずの目標(最短目標)までカウンタを進める.
 
virtual bool isCanceled()
カウンタがオペレータにより,キャンセルされたか
 
virtual void SetTitle(char *tn)
カウンタのタイトルを設定
 
virtual void SetPos(int p)
カウンタの現在位置を設定
 
void init(void)
グラフィックデータは解放しない
 
int zs
zサイズ. 4Byte. 2Dの場合は 1.
 
double RZxy
Z軸の歪.Z軸の間隔を 1とした XY軸の間隔.(X or Y)/Z.
 
void free(void)
グラフィックデータを開放する
 
bool isNull(void)
グラフィックデータを持っていないか?
 
RBound< int > rbound
画像の境界情報
 
void getm(int x, int y, int z=1, T v=(T) 0)
グラフィックメモリを獲得する
 
void set(T XMin=(T) 0, T XMax=(T) 0, T YMin=(T) 0, T YMax=(T) 0, T ZMin=(T) 0, T ZMax=(T) 0, T TMin=(T) 0, T TMax=(T) 0)
 
#define checkBit(dat, bit)
 
#define JBXL_GRAPH_IVDARG_ERROR
無効な引数
 
#define JBXL_GRAPH_OPFILE_ERROR
ファイルのオープンエラー
 
#define JBXL_GRAPH_CANCEL
処理がキャンセルされた
 
#define JBXL_GRAPH_HEADER_ERROR
画像ヘッダーのエラー
 
#define JBXL_GRAPH_MEMORY_ERROR
メモリエラー
 
CVCounter * GetUsableGlobalCounter()
現在有効なグローバルカウンタを得る.(子カウンタを得るかもしれない)
 
MSGraph< sWord > readDicomFile(const char *fn)
 
int writeCmnHeadData(FILE *fp, CmnHead *hd, bool cnt=false)
 
MSGraph< T > readGraphicFile(const char *fname, CmnHead *chd=NULL, bool cnt=false)
 
MSGraph< sWord > readDicomData(FILE *fp, int fsz)
 
void free_CmnHead(CmnHead *hd)
 
int writeRasFile(const char *fname, MSGraph< T > vp)
 
MSGraph< T > readGraphicSlices(const char *fmt, int fst, int fnd, CmnHead *chd=NULL, bool cnt=false)
 
CmnHead readRasData(FILE *fp)
read_ras_data() for C // SUN RASTER形式のファイルを読み込む
 
int writeRasData(FILE *fp, CmnHead *ch, int obit=8)
write_ras_data() for C
 
CmnHead readMoonData(FILE *fp, unsigned int fsz=0, bool no_ntoh=false)
 
CmnHead getinfo_CmnHead(CmnHead hd)
ヘッダ情報のみをコピーする
 
MSGraph< T > readRasFile(const char *fname)
 
CmnHead readUserSetData(FILE *fp, CmnHead *ch, bool cnt=false)
read_user_data() for C // ユーザ指定(ch)のデータ形式でファイルを読み込む
 
CmnHead readMoonFile(const char *fn, bool no_ntoh=false)
 
CmnHead readCmnHeadFile(const char *fn, CmnHead *ch, bool cnt=false)
拡張read関数.ファイル種別を指定して読み込む.
 
CmnHead readXHeadFile(const char *fn, CmnHead *ch=NULL, bool cnt=false)
拡張read関数.ファイルを自動判別して読み込む.
 
int writeCmnHeadFile(const char *fn, CmnHead *hd, bool cnt=false)
 
int dicomHeader(FILE *fp, int fsize, int *dsize, int *xsize, int *ysize, int *depth, double *rzxy)
 
CmnHead readXHead(const char *fn, CmnHead *ch=NULL)
ヘッダ部分のみ読み込み
 
int writeGraphicFile(const char *fname, MSGraph< T > vp, int kind=0, int mlt=FALSE, int fnum=0, int tnum=0, bool cnt=false)
 
CmnHead copyMSGraph2CmnHead(MSGraph< T > &vp, unsigned int mode=MG2CH_NORMAL, bool cnt=false)
 
unsigned int lsize
Size of Graphics Data (byte unit)
 
uByte * buf
Ture Header buffer
 
int zsize
For 3D Data (or Color)
 
int kind
Kind of Graphics Format.
 
unsigned int bsize
Fllowing buf size or Any Data (byte unit)
 
uByte * grptr
Pointer to Data.
 
int ysize
Height of Graphics.
 
int depth
Color Depth of Graphics (bit unit)
 
int xsize
Width of Graphics.