VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > C#教程 >
  • c#实现淡入淡出效果显示图片

制作者:剑锋冷月 单位:无忧统计网,www.51stat.net
 

  以淡入淡出显示图像效果显示图像主要使用了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,"信息提示");
  }
}



相关教程