2

自己找不到答案,所以把它放在那里,

是否可以使用 VS 2010 在 C# 中动态地在图像的顶部和/或底部应用某种深色渐变阴影?

效果是图像的中心没有被触及,但是我们越靠近图像的底部或顶部,它就会变得越暗,从而产生很好的效果。

问候,

4

2 回答 2

3

这是我对您的问题的解决方案:

为了在图像上绘制像渐变这样的阴影,我们可以使用LinearGradientBrushfromSystem.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;
}

欲了解更多信息,请查看:

希望能帮助到你 :)

于 2013-06-27T09:42:12.073 回答
0

您可以创建渐变并将其与原始图像相结合。

一些有用的资源: http: //www.codeproject.com/Articles/6502/Transparency-Tutorial-with-C-Part-1 http://www.codeproject.com/Articles/20018/Gradients-made-easy

可能最简单的情况应该只是将黑色与具有给定透明度的图像结合起来 - 因此图像的中心可以是原始颜色,并且随着与中心的距离增加,您可以放下阴影/使其更暗。

于 2013-06-27T09:00:37.973 回答