帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:图像  FADE  对象  fad  


介绍

通过将一个图层放置在图像上,并让它的alpha值逐步增加,可以以识别 C#的任何图像或者图形对象。 在本示例中,我在表单中放置了两个 PictureBox es和三个按钮。 左侧 PictureBox 显示原始图片,而淡出效果显示在右侧 PictureBox 中。 你可以通过点击"开始"按钮来启动一切。 "重新启动"按钮重新加载原始图像,并允许你再次启动效果。 单击"选取颜色"按钮,你可以选择不同的颜色来淡入淡出。

使用代码

你可以单击"开始"按钮并启动计时器 tFadeOut 来启动该效果。

privatevoid btnStart_Click(object sender, EventArgs e)
{
 //disable buttons and start timer btnStart.Enabled = false;
 btnPickColor.Enabled = false;
 btnReload.Enabled = false;
 tFadeOut.Start();
}

计时器刻度,每个刻度,函数 Lighter() 返回右侧 PictureBox的修改后的图像,直到 x 增加到 102.

privatevoid tFadeOut_Tick(object sender, EventArgs e)
{
 if (x == 102)
 {
 //if x was incremented up to 102, the picture was faded //and the buttons can be enabled again x = 50;
 tFadeOut.Stop();
 btnPickColor.Enabled = true;
 btnReload.Enabled = true;
 }
 else//pass incremented x, and chosen color to function //Lighter and set modified image as second picture box image pImage02.Image=Lighter(pImage02.Image, x++, colToFadeTo.R, 
 colToFadeTo.G, colToFadeTo.B);
}

函数 Lighter() 中,传递的图像 imgLight 首先被转换为 Graphics 对象。 下一步是计算遮罩的新alpha值,以放置在 Graphics 对象上方。 然后,将这里掩码作为 Pen 对象创建,并将计算的alpha值和颜色淡入为。 这里掩码通过使用以前步骤中创建的笔 pLight的方法 DrawLineGraphics 对象上绘制。 使用方法 graphics.Save() 保存最终 Graphics 对象也会将新图片保存到图像 imgLight 。 最后的步骤是处理 Graphics 对象并返回新的修改后的图像。

private Image Lighter(Image imgLight, int level, int nRed, int nGreen, int nBlue)
{
 //convert image to graphics object Graphics graphics = Graphics.FromImage(imgLight);
 int conversion = (5 * (level - 50)); //calculate new alpha value//create mask with blended alpha value and chosen color as pen  Pen pLight = new Pen(Color.FromArgb(conversion, nRed, 
 nGreen, nBlue), imgLight.Width * 2);
 //apply created mask to graphics object graphics.DrawLine(pLight, -1, -1, imgLight.Width, imgLight.Height);
 //save created graphics object and modify image object by that graphics.Save();
 graphics.Dispose(); //dispose graphics objectreturn imgLight; //return modified image}

历史记录

  • 27.03.2009第一个版本上传到 CodeProject 。


文章标签:图像  对象  fad  FADE  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语