protected override void GetImage(out Bitmap bmp) { base.GetImage(out bmp);bmp= new Bitmap(bmp); if (TIME_PASS < END_EXPAND) { bmp.Merge_RGB(Color.FromArgb(255, 255, 255), 1.0); Bitmap ans= bmp.Resize(MAX_RATIO * TIME_PASS / END_EXPAND); //bmp.Dispose(); bmp = ans; } else if (TIME_PASS < END_SHRINK) { double ratio = (TIME_PASS - END_EXPAND) / (END_SHRINK - END_EXPAND); bmp.Merge_RGB(Color.FromArgb(255, 255, 255), 1.0 - ratio); Bitmap ans = bmp.Resize(MAX_RATIO.Merge(1.0, ratio)); //bmp.Dispose(); bmp = ans; } else if (TIME_PASS < PERIOD - HIDE_PERIOD) return; else { double ratio = (TIME_PASS - (PERIOD - HIDE_PERIOD)) / HIDE_PERIOD; bmp.Multiply_A(1.0 - ratio); } }