使用GDI绘画图片

来源:互联网 发布:庆应大学留学知乎 编辑:程序博客网 时间:2024/04/29 22:00
 using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; public partial class CreateImg : System.Web.UI.Page {    protected void Page_Load(object sender, EventArgs e)    {    }    private static ImageCodecInfo GetEncoderInfo(String mimeType)    {        ImageCodecInfo[] encoders;        encoders = ImageCodecInfo.GetImageEncoders();        for (int j = 0; j < encoders.Length; ++j)        {            if (encoders[j].MimeType == mimeType)                return encoders[j];        }        return null;    }    private Bitmap GetneralCodeImage()    {        Bitmap bmp = new Bitmap(150, 18);        Graphics g = Graphics.FromImage(bmp);        g.Clear(Color.FromArgb(247, 213, 225));        //描绘字符        g.DrawString("1366666666", new Font("Verdana", 11, FontStyle.Bold),                new SolidBrush(Color.FromArgb(255, 102, 0)),                0,                0            );        g.CompositingQuality = CompositingQuality.HighQuality;        g.SmoothingMode = SmoothingMode.HighQuality;        g.InterpolationMode = InterpolationMode.HighQualityBicubic;        g.PixelOffsetMode = PixelOffsetMode.HighQuality;        g.Dispose();        return bmp;    }    protected void btnpng_Click(object sender, EventArgs e)    {        //生成png图片(清晰度高)        System.IO.MemoryStream ms = new System.IO.MemoryStream();        GetneralCodeImage().Save(ms, ImageFormat.Png);        ms.WriteTo(Response.OutputStream);   }    protected void btnjpeg_Click(object sender, EventArgs e)     {        //生成jpg图片(清晰度不够)        System.Drawing.Imaging.EncoderParameters ep = new System.Drawing.Imaging.EncoderParameters(1);        ep.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 95L);        System.Drawing.Imaging.ImageCodecInfo ici = GetEncoderInfo("image/jpeg");//这里换成gif后文字显示可以,但背景不清楚        this.GetneralCodeImage().Save(Response.OutputStream, ici, ep);    }}