C#生成Bar Code Image

时间:2022-03-24 08:36:01

public class Barcode : IHttpHandler     {         private object _code = "";         private int _height = 52;         private string code = "";         public void ProcessRequest(HttpContext context)         {             if (context.Request.QueryString["code"] != null)             {                 _code = context.Request.QueryString["code"].ToString();                 _code = "*" + _code + "*";             }             code = bar_code(_code);             int p_w = code.Length;    //int p_h = _height + 20;    int p_h = _height;             context.Response.ContentType = "image/gif";             Bitmap myBitmap = new Bitmap(p_w, p_h);             Graphics myGrap = Graphics.FromImage(myBitmap);             myGrap.Clear(Color.White);             for (int i = 0; i < p_w; i++)             {                 Pen myPen = new Pen(Color.White, 1);                 if (code.Substring(i, 1) == "|")                 {                     myPen.Color = Color.Black;                 }                 myGrap.DrawLine(myPen, i, 0, i, _height);             }    //myGrap.DrawString(_code.ToString(), new Font("Courier New", 10), new SolidBrush(Color.Black), -4, _height);             myBitmap.Save(context.Response.OutputStream, ImageFormat.Gif);             context.Response.End();         }         public string bar_code(object str)         {             string strTmp = str.ToString();             string code = strTmp;             strTmp = strTmp.ToLower();             strTmp = strTmp.Replace("0", "_|_|__||_||_|");             strTmp = strTmp.Replace("1", "_||_|__|_|_||");             strTmp = strTmp.Replace("2", "_|_||__|_|_||");             strTmp = strTmp.Replace("3", "_||_||__|_|_|");             strTmp = strTmp.Replace("4", "_|_|__||_|_||");             strTmp = strTmp.Replace("5", "_||_|__||_|_|");             strTmp = strTmp.Replace("7", "_|_|__|_||_||");             strTmp = strTmp.Replace("6", "_|_||__||_|_|");             strTmp = strTmp.Replace("8", "_||_|__|_||_|");             strTmp = strTmp.Replace("9", "_|_||__|_||_|");             strTmp = strTmp.Replace("a", "_||_|_|__|_||");             strTmp = strTmp.Replace("b", "_|_||_|__|_||");             strTmp = strTmp.Replace("c", "_||_||_|__|_|");             strTmp = strTmp.Replace("d", "_|_|_||__|_||");             strTmp = strTmp.Replace("e", "_||_|_||__|_|");             strTmp = strTmp.Replace("f", "_|_||_||__|_|");             strTmp = strTmp.Replace("g", "_|_|_|__||_||");             strTmp = strTmp.Replace("h", "_||_|_|__||_|");             strTmp = strTmp.Replace("i", "_|_||_|__||_|");             strTmp = strTmp.Replace("j", "_|_|_||__||_|");             strTmp = strTmp.Replace("k", "_||_|_|_|__||");             strTmp = strTmp.Replace("l", "_|_||_|_|__||");             strTmp = strTmp.Replace("m", "_||_||_|_|__|");             strTmp = strTmp.Replace("n", "_|_|_||_|__||");             strTmp = strTmp.Replace("o", "_||_|_||_|__|");             strTmp = strTmp.Replace("p", "_|_||_||_|__|");             strTmp = strTmp.Replace("r", "_||_|_|_||__|");             strTmp = strTmp.Replace("q", "_|_|_|_||__||");             strTmp = strTmp.Replace("s", "_|_||_|_||__|");             strTmp = strTmp.Replace("t", "_|_|_||_||__|");             strTmp = strTmp.Replace("u", "_||__|_|_|_||");             strTmp = strTmp.Replace("v", "_|__||_|_|_||");             strTmp = strTmp.Replace("w", "_||__||_|_|_|");             strTmp = strTmp.Replace("x", "_|__|_||_|_||");             strTmp = strTmp.Replace("y", "_||__|_||_|_|");             strTmp = strTmp.Replace("z", "_|__||_||_|_|");             strTmp = strTmp.Replace("-", "_|__|_|_||_||");             strTmp = strTmp.Replace("*", "_|__|_||_||_|");             strTmp = strTmp.Replace("/", "_|__|__|_|__|");             strTmp = strTmp.Replace("%", "_|_|__|__|__|");             strTmp = strTmp.Replace("+", "_|__|_|__|__|");             strTmp = strTmp.Replace(".", "_||__|_|_||_|");             return strTmp;         }         public bool IsReusable         {             get             {                 return false;             }         }     }