C#实现淡入淡出显示图像效果显示图片。

以淡入淡出显示图像效果显示图像主要使用了ImageAttributes类的SetColorMatrix方法设置颜色调整矩阵实现淡入淡出的效果。ImageAttributes对象维护多个颜色调整设置,包括颜色调整矩阵、灰度调整矩阵、灰度校正值、颜色映射表和颜色阈值。呈现过程中,可以对颜色进行校正、调暗、调亮和移除。 淡入效果代码如下: privatevoidbutton1_Click(objectsender,EventArgse)
{
  //淡入显示图像
  try
  {
    Graphicsg=this.panel1.CreateGraphics();
    g.Clear(Color.Gray);
    intwidth=MyBitmap.Width;
    intheight=MyBitmap.Height;
    ImageAttributesattributes=newImageAttributes();
    ColorMatrixmatrix=newColorMatrix();
    //创建淡入颜色矩阵
    matrix.Matrix00=(float)0.0;
    matrix.Matrix01=(float)0.0;
    matrix.Matrix02=(float)0.0;
    matrix.Matrix03=(float)0.0;
    matrix.Matrix04=(float)0.0;
    matrix.Matrix10=(float)0.0;
    matrix.Matrix11=(float)0.0;
    matrix.Matrix12=(float)0.0;
    matrix.Matrix13=(float)0.0;
    matrix.Matrix14=(float)0.0;
    matrix.Matrix20=(float)0.0;
    matrix.Matrix21=(float)0.0;
    matrix.Matrix22=(float)0.0;
    matrix.Matrix23=(float)0.0;
    matrix.Matrix24=(float)0.0;
    matrix.Matrix30=(float)0.0;
    matrix.Matrix31=(float)0.0;
    matrix.Matrix32=(float)0.0;
    matrix.Matrix33=(float)0.0;
    matrix.Matrix34=(float)0.0;
    matrix.Matrix40=(float)0.0;
    matrix.Matrix41=(float)0.0;
    matrix.Matrix42=(float)0.0;
    matrix.Matrix43=(float)0.0;
    matrix.Matrix44=(float)0.0;
    matrix.Matrix33=(float)1.0;
    matrix.Matrix44=(float)1.0;
    //从0到1进行修改色彩变换矩阵主对角线上的数值
    //使三种基准色的饱和度渐增
    Singlecount=(float)0.0;
    while(count<1.0)
    {
      matrix.Matrix00=count;
      matrix.Matrix11=count;
      matrix.Matrix22=count;
      matrix.Matrix33=count;
      attributes.SetColorMatrix(matrix,ColorMatrixFlag.Default,ColorAdjustType.Bitmap);
     g.DrawImage(MyBitmap,newRectangle(0,0,width,height),0,0,width,height,GraphicsUnit.Pixel,attributes);
      System.Threading.Thread.Sleep(200);
      count=(float)(count+0.02);
    }
  }
  catch(Exceptionex)
  {
    MessageBox.Show(ex.Message,"信息提示");
  }
}

  淡出效果代码如下:privatevoidbutton3_Click(objectsender,EventArgse)
{
  //淡出显示图像
  try
  {
    Graphicsg=this.panel1.CreateGraphics();
    g.Clear(Color.Gray);
    intwidth=MyBitmap.Width;
    intheight=MyBitmap.Height;
    ImageAttributesattributes=newImageAttributes();
    ColorMatrixmatrix=newColorMatrix();
    //创建淡出颜色矩阵
    matrix.Matrix00=(float)0.0;
    matrix.Matrix01=(float)0.0;
    matrix.Matrix02=(float)0.0;
    matrix.Matrix03=(float)0.0;
    matrix.Matrix04=(float)0.0;
    matrix.Matrix10=(float)0.0;
    matrix.Matrix11=(float)0.0;
    matrix.Matrix12=(float)0.0;
    matrix.Matrix13=(float)0.0;
    matrix.Matrix14=(float)0.0;
    matrix.Matrix20=(float)0.0;
    matrix.Matrix21=(float)0.0;
    matrix.Matrix22=(float)0.0;
    matrix.Matrix23=(float)0.0;
    matrix.Matrix24=(float)0.0;
    matrix.Matrix30=(float)0.0;
    matrix.Matrix31=(float)0.0;
    matrix.Matrix32=(float)0.0;
    matrix.Matrix33=(float)0.0;
    matrix.Matrix34=(float)0.0;
    matrix.Matrix40=(float)0.0;
    matrix.Matrix41=(float)0.0;
    matrix.Matrix42=(float)0.0;
    matrix.Matrix43=(float)0.0;
    matrix.Matrix44=(float)0.0;
    matrix.Matrix33=(float)1.0;
    matrix.Matrix44=(float)1.0;
    //从1到0进行修改色彩变换矩阵主对角线上的数值
    //依次减少每种色彩分量
    Singlecount=(float)1.0;
    while(count>0.0)
    {
      matrix.Matrix00=(float)count;
      matrix.Matrix11=(float)count;
      matrix.Matrix22=(float)count;
      matrix.Matrix33=(float)count;
      attributes.SetColorMatrix(matrix,ColorMatrixFlag.Default,ColorAdjustType.Bitmap);
     g.DrawImage(MyBitmap,newRectangle(0,0,width,height),0,0,width,height,GraphicsUnit.Pixel,attributes);
      System.Threading.Thread.Sleep(20);
      count=(float)(count-0.01);
    }
  }
  catch(Exceptionex)
  {
    MessageBox.Show(ex.Message,"信息提示");
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值