帮酷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  |  如果智培  |  酷兔英语