C#图像的顶部和底部较暗

时间:2013-06-27 08:14:43

标签: c# image image-manipulation

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

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

效果会使图像的中心不受影响,但是我们越接近图像的底部或顶部,它就会越暗,效果越好。

此致

2 个答案:

答案 0 :(得分:3)

以下是我的问题解决方案:

对于像图像上的渐变一样绘制阴影,我们可以使用LinearGradientBrush中的System.Drawing.Drawing2D来定义新画笔,使用此画笔以及在图像顶部绘制/填充矩形我们可以对我们的图像具有阴影效果

以下是使用此方法的结果:

enter image description here

这是一个示例函数,它采用位图并返回带阴影效果的位图:

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;
}

如需了解更多信息,请查看:

希望它有助于:)

答案 1 :(得分:0)

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

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

最简单的方案可能就是将黑色与您的图像结合使用给定的透明度 - 因此图像的中心可以是原始颜色,并且随着距离中心的距离越来越远,您可以放下阴影/使其变暗。