繁体   English   中英

用C#绘制带有圆角,边框和渐变的图像

[英]Draw image with rounded corners, border and gradient fill in C#

我到处都看过了,用Google搜索了所有内容,却找不到任何好的内容。 我需要的是一个类,该类能够绘制带有圆角(在每个角上都不同,是一个加号)并带有边框和渐变填充的图像(图形)。

我发现的所有示例都有一些缺陷(例如质量差,功能缺失等)。

我将它与ashx一起使用,它将绘制图像并将其显示给用户。

谢谢!

GraphicsPath允许您绘制相对自由的表单形状,然后可以用渐变笔刷填充。 下面的示例代码将创建一个带有两个不同的圆角和渐变填充的矩形。

    GraphicsPath gp = new GraphicsPath();
    gp.AddLine(new Point(10, 10), new Point(75, 10));
    gp.AddArc(50, 10, 50, 50, 270, 90);
    gp.AddLine(new Point(100, 35), new Point(100, 100));
    gp.AddArc(80, 90, 20, 20, 0, 90);
    gp.AddLine(new Point(90, 110), new Point(10, 110));
    gp.AddLine(new Point(10, 110), new Point(10, 10));
    Bitmap bm = new Bitmap(110, 120);
    LinearGradientBrush brush = new LinearGradientBrush(new Point(0, 0), new Point(100, 110), Color.Red, Color.Yellow);
    using (Graphics g = Graphics.FromImage(bm))
    {
        g.FillPath(brush, gp);
        g.DrawPath(new Pen(Color.Black, 1), gp);
        g.Save();
    }
    bm.Save(@"c:\bitmap.bmp");

结果如下图所示:

替代文字

我认为您需要使用图形对象创建自己的方法,然后“手动”(阅读“带有代码”)创建图像。 最简单的方法是创建一个图形对象,添加一个圆圈,然后在图像的每个象限中添加所需的额外内容,然后将该对象分成四等分。 或以一幅图像的形式返回整个内容,然后使用CSS精灵将图像放置在具有正确坐标的正确位置(可能是更好的解决方案,因为它使用较少的对图形库的调用并仅返回一个文件,因此对网络的调用较少服务器)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM