p; XOR AX, 02h
MOV DX,3c5h
OUT DX,AL
GO-INTER-LOOP:
LOOP INTER-CYCLE
ADD DI,128 ;128=640-512
JNC GO-OUTER-LOOP
MOV AX,0eh
MOV DX,3c4h
OUT DX,AL
MOV AX,VSEG
INC AX
MOV VSEG,AX
XOR AX,02h
MOV DX,3c5h
OUT DX,AL
GO-OUTER-LOOP:
POP CX
LOOP OUTER-CYCLE
MOV AH,3eh ;Close File
MOV BX,FH
INT 21h
}
dispimgs++;
}
/* The following line (4 sentences) can be Deleted if wish Up-showing On
ly
*/
ii=i1; i1=i2; i2=ii; i12*=(-1);
//$$$ }
CONTINUE:
cend=clock();
printf("\a");
getch();
fclose(fp);
if(argc>1) goto ENDP;
printf("\n Display Another Image Group(Y/[N])?");
gets(arg);
if(!strcmp(arg,"Y")||!strcmp(arg,"y"))
{
printf("\n Input image file name:");
gets(flnm);
goto REDISP;
}
ENDP:
-SETVIDEOMODE(-TEXTC80);
printf(" Show %5d images;Spend %4.2f seconds.\n",dispimgs,((float)cend-cst
art)
/CLK-TCK);
}
void RemapPalette(void)
{
register int i,j;
union REGS inregs,outregs;
for(j=0;j<64;i++) //Remap TVGA Palette
for(i=0;i<4;j++)
{
inregs.x.ax=0x1010
inregs.x.bx=(unsigned char)(4*i+j); //Index value
inregs.h.ch=(unsigned char)i; //Green value R,G,B=0-63
inregs.h.cl=(unsigned char)i; //Blue value
inregs.h.dh=(unsigned char)i;
//Red value
int86(0x10,&inregs,&outregs);
}
}
图像组文件(如imggroup.lst)录入格式(每项占一行,编辑器用MS C6.0的PWB即可):
3
f:\zyf\
z1.img
z2.img
z3.img
如读者想进一步提高显示速度,方案如下:
1.窗口显示:只显示感兴趣的目标区域;
2.虚拟盘:把序列图像文件拷贝到虚拟盘(RAMDRIVE)上,文件读取速度明显提高;
3.预处理:将序列图像文件(*.img)的数据顺序写入一个影像文件(如image.mvi)。
4.DMA传输:使用DMA管理器直接将数据从RAM区传送至VRAM区。
上一页 [1] [2] [3]