当前位置: 移动技术网 > IT编程>开发语言>.net > asp.net下GDI+的一些常用应用(水印,文字,圆角处理)技巧

asp.net下GDI+的一些常用应用(水印,文字,圆角处理)技巧

2018年04月28日  | 移动技术网IT编程  | 我要评论

波动少女小游戏,韩国最新r级限制片,大学生网站

public class mygdi
{
    public static void createwatermark(string ssrcfilepath, string sdstfilepath, string stext1, string scolor1, string ssize1, string sfont1, string stext2, string scolor2, string ssize2, string sfont2, string sbgcolor, string stransparence)
    {
        system.drawing.image image = system.drawing.image.fromfile(ssrcfilepath);
        graphics g = graphics.fromimage(image);
        g.smoothingmode = smoothingmode.antialias;
        g.interpolationmode = interpolationmode.highqualitybicubic;
        g.compositingquality = compositingquality.highquality;
        g.textrenderinghint = system.drawing.text.textrenderinghint.antialias; //文字抗锯齿
        g.drawimage(image, 0, 0, image.width, image.height);
        font f1 = new font(sfont1, float.parse(ssize1));
        font f2 = new font(sfont2, float.parse(ssize2));
        brush brushfortext1 = new solidbrush(colortranslator.fromhtml(scolor1));
        brush brushfortext2 = new solidbrush(colortranslator.fromhtml(scolor2));
        brush brushforbg = new solidbrush(color.fromargb(convert.toint16(255 * float.parse(stransparence)), colortranslator.fromhtml(sbgcolor)));
        g.rotatetransform(-20);
        rectangle rect = new rectangle(-image.width/2-50, image.height - 50, image.width * 2, 40);
        g.drawrectangle(new pen(brushforbg), rect);
        g.fillrectangle(brushforbg, rect);
        rectangle rectfortext1 = new rectangle(-image.width/2 + image.width / 5, image.height - 45, image.width * 2, 60);
        for (int i = 0; i < 10; i++)
            g.drawstring(stext1, f1, brushfortext1, rectfortext1);
        rectangle rectfortext2 = new rectangle(-image.width / 2 + image.width / 5, image.height -25, image.width * 2, 60);
        for (int i = 0; i < 10; i++)
            g.drawstring(stext2, f2, brushfortext2, rectfortext2);
        image.save(sdstfilepath, imageformat.jpeg);
        image.dispose();
    }
    public static void createroundedcorner(string ssrcfilepath, string sdstfilepath, string scornerlocation)
    {
        system.drawing.image image = system.drawing.image.fromfile(ssrcfilepath);
        graphics g = graphics.fromimage(image);
        g.smoothingmode = smoothingmode.highquality;
        g.interpolationmode = interpolationmode.highqualitybicubic;
        g.compositingquality = compositingquality.highquality;
        rectangle rect = new rectangle(0, 0, image.width, image.height);
        graphicspath rectpath = createroundrectanglepath(rect, image.width / 10, scornerlocation); //构建圆角外部路径
        brush b = new solidbrush(color.white);//圆角背景白色
        g.drawpath(new pen(b), rectpath);
        g.fillpath(b, rectpath);
        g.dispose();
        image.save(sdstfilepath, imageformat.jpeg);
        image.dispose();
    }
    public static void createplaintext(string ssrcfilepath, string sdstfilepath,string stext, string scolor, string ssize, string sfont)
    {
        system.drawing.image image = system.drawing.image.fromfile(ssrcfilepath);
        graphics g = graphics.fromimage(image);
        g.smoothingmode = smoothingmode.antialias;
        g.interpolationmode = interpolationmode.highqualitybicubic;
        g.compositingquality = compositingquality.highquality;
        g.drawimage(image, 0, 0, image.width, image.height);
        g.textrenderinghint = system.drawing.text.textrenderinghint.antialias; //文字抗锯齿
        font f = new font(sfont,float.parse(ssize));
        brush b = new solidbrush(colortranslator.fromhtml(scolor));
        rectangle rect = new rectangle(10, 5, image.width, image.height); //适当空开一段距离        
        for (int i = 0; i < 30; i++) //加强亮度
            g.drawstring(stext, f, b, rect);
        image.save(sdstfilepath, imageformat.jpeg);
        image.dispose();
    }
    private static graphicspath createroundrectanglepath(rectangle rect, int radius, string sposition)
    {
        graphicspath rectpath = new graphicspath();
        switch (sposition)
        {
            case "topleft":
                {
                    rectpath.addarc(rect.left, rect.top, radius * 2, radius * 2, 180, 90);
                    rectpath.addline(rect.left, rect.top, rect.left, rect.top + radius);
                    break;
                }
            case "topright":
                {
                    rectpath.addarc(rect.right - radius * 2, rect.top, radius * 2, radius * 2, 270, 90);
                    rectpath.addline(rect.right, rect.top, rect.right - radius, rect.top);
                    break;
                }
            case "bottomleft":
                {
                    rectpath.addarc(rect.left, rect.bottom - radius * 2, radius * 2, radius * 2, 90, 90);
                    rectpath.addline(rect.left, rect.bottom - radius, rect.left, rect.bottom);
                    break;
                }
            case "bottomright":
                {
                    rectpath.addarc(rect.right - radius * 2, rect.bottom - radius * 2, radius * 2, radius * 2, 0, 90);
                    rectpath.addline(rect.right - radius, rect.bottom, rect.right, rect.bottom);
                    break;
                }
        }
        return rectpath;
    }
}

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网