📄 go_inout.h
字号:
/*图象的淡入与淡出,color为目标颜色,w=0为淡入,w=1为淡出*/
void go_inout(int color,long timedelay,char w)
{register int n,k=0;
register char target_rgb[256][3],turn_rgb[256][3],
r,g,b;
for(r=0;r<64;r+=9) /*获得原DAC色表*/
for(g=0;g<64;g+=9)
for(b=0;b<64;b+=21)
{target_rgb[k][0]=r;
target_rgb[k][1]=g;
target_rgb[k][2]=b;
k++;
}
r=target_rgb[color][0];
g=target_rgb[color][1];
b=target_rgb[color][2];
for(k=0;k<256;k++) /*淡入或淡出色差表*/
{turn_rgb[k][0]=(r-target_rgb[k][0])/9;
turn_rgb[k][1]=(g-target_rgb[k][1])/9;
turn_rgb[k][2]=(b-target_rgb[k][2])/21;
if(w)
{turn_rgb[k][0]=-turn_rgb[k][0];
turn_rgb[k][1]=-turn_rgb[k][1];
turn_rgb[k][2]=-turn_rgb[k][2];
}
}
if(w)
for(k=0;k<256;k++)
{target_rgb[k][0]=r;
target_rgb[k][1]=g;
target_rgb[k][2]=b;
}
for(n=1;n<19;n++)
{for(k=0;k<256;k++)
{if(n%6!=0)target_rgb[k][2]+=turn_rgb[k][2];
else target_rgb[k][2]+=turn_rgb[k][2]*2;
if(n%2!=0)
{target_rgb[k][1]+=turn_rgb[k][1]/2;target_rgb[k][0]+=turn_rgb[k][0]/2;}
else
{target_rgb[k][1]+=(turn_rgb[k][1]-turn_rgb[k][1]/2);
target_rgb[k][0]+=(turn_rgb[k][0]-turn_rgb[k][0]/2);
}
outportb(0x3c8,k);
outportb(0x3c9,target_rgb[k][0]);
outportb(0x3c9,target_rgb[k][1]);
outportb(0x3c9,target_rgb[k][2]);
}
delay(timedelay); /*延时*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -