无法自己找到答案,所以把它放在那里,
是否可以使用VS 2010在C#中动态地在图像的顶部和/或底部应用某种暗色渐变阴影?
效果会使图像的中心不受影响,但是我们越接近图像的底部或顶部,它就会越暗,效果越好。
此致
答案 0 :(得分:3)
以下是我的问题解决方案:
对于像图像上的渐变一样绘制阴影,我们可以使用LinearGradientBrush
中的System.Drawing.Drawing2D
来定义新画笔,使用此画笔以及在图像顶部绘制/填充矩形我们可以对我们的图像具有阴影效果
以下是使用此方法的结果:
这是一个示例函数,它采用位图并返回带阴影效果的位图:
private Bitmap AddShodowOnTop(Bitmap bmp)
{
Bitmap bmpGradient = new Bitmap(bmp);
Graphics graphics = Graphics.FromImage(bmpGradient);
LinearGradientBrush linearBrush = new LinearGradientBrush(
new Point(0, 0),
new Point(0, bmp.Height / 5),
Color.FromArgb(130, 0, 0, 0),
Color.FromArgb(0, 0, 0, 0));
graphics.FillRectangle(linearBrush, 0, 0, bmp.Width, bmp.Height / 5);
return bmpGradient;
}
如需了解更多信息,请查看:
<强> LinearGradientBrush Class 强>
希望它有助于:)
答案 1 :(得分:0)
您可以创建渐变并将其与原始图像合并。
一些有用的资源: http://www.codeproject.com/Articles/6502/Transparency-Tutorial-with-C-Part-1 http://www.codeproject.com/Articles/20018/Gradients-made-easy
最简单的方案可能就是将黑色与您的图像结合使用给定的透明度 - 因此图像的中心可以是原始颜色,并且随着距离中心的距离越来越远,您可以放下阴影/使其变暗。