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.