首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 圖片淡出效果實現:ColorMatrix 反向動畫

     編輯:關於C語言

淡出動畫邏輯與淡入相反:主對角線值從 1 遞減至 0,RGB 飽和度逐漸歸零。

核心代碼

private void btnFadeOut_Click(object sender, EventArgs e) {
    Graphics g = panel1.CreateGraphics();
    g.Clear(Color.Gray);
    int w = MyBitmap.Width, h = MyBitmap.Height;

    ImageAttributes attr = new ImageAttributes();
    ColorMatrix cm = new ColorMatrix();
    cm.Matrix33 = cm.Matrix44 = 1f;

    for (float c = 1f; c > 0f; c -= 0.01f) {
        cm.Matrix00 = cm.Matrix11 = cm.Matrix22 = cm.Matrix33 = c;
        attr.SetColorMatrix(cm, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
        g.DrawImage(MyBitmap, new Rectangle(0, 0, w, h), 0, 0, w, h, GraphicsUnit.Pixel, attr);
        Thread.Sleep(20);
    }
}

與淡入對比

特性淡入淡出
主對角線初值01
變化方向遞增遞減
視覺效果透明→不透明不透明→透明

同樣優化建議

  • 非阻塞動畫循環
  • 資源釋放與雙緩衝
  • 可封裝為通用 `FadeEffect` 類支援雙向控制
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved