c# 生成条形码标识类

来源:互联网 发布:mac低版本软件下载 编辑:程序博客网 时间:2024/06/12 01:07

using System;
using System.IO;
using System.Drawing;
using System.Web.UI;

namespace WebUI.WebControl
{
 /// <summary>
 /// Class1 的摘要说明。
 /// </summary>
 public class CreateImage
 {
  public CreateImage()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }


  
  //生成图片
  public void CreateCodeLogo(string code)
  {
   
   long len = code.Length;
   string lastString = "";
   char[] list = new char[len+1];
   

   list = code.ToCharArray();

   for( int i = 0; i < list.Length; i++)
   {
    lastString += this.ConvertToBinaryString(list[i].ToString());
    //numList[i] = this.ConvertToBinaryString(list[i].ToString());
   }
   
   char[] numList = new char[lastString.Length + 1];
   numList = lastString.ToCharArray();


   Bitmap image = new Bitmap(200,140);
   Graphics g = Graphics.FromImage(image);

   //string thefullname = "nowtime.gif";
   g.Clear(Color.White);
   //g.DrawString(lastString,new System.Drawing.Font("Courier New", 12),new SolidBrush(Color.Red),10,110);

   Pen penBlack = new Pen(Color.FromArgb(255, 0, 0, 0),2.5F);
   Pen penWhite = new Pen(Color.White,2.5F);

   int j = 0;

   for (float k = 10; j < numList.Length; k += 2.5F,j++)
   {
    if ( numList[j].ToString() == "1")
    {
     g.DrawLine(penBlack, k, 10, k, 110);
    }
    else
    {
     g.DrawLine(penWhite, k, 10, k, 110);
    }

    if ( j % 4 == 0)
    {
     g.DrawString(list[j/4].ToString(),new System.Drawing.Font("Courier New", 12),new SolidBrush(Color.Red),k,112);
     //k += 5; 
    }
   }
   
   image.Save(@"c://codeLogo.gif",System.Drawing.Imaging.ImageFormat.Gif);

  }

  //将字符串数值转换为二进制字符串数值
  public string ConvertToBinaryString(string buf)
  {
   int[] temp= new int[20];
   string binary;
   int val=0,i=0,j;
   
   //先将字符转化为十进制数
   try
   {
    val = Convert.ToInt32(buf);
   }
   catch
   {
    val = 0;
   }
   
   if(val==0)
   {
    return("0000");
   }
   
   i=0;
   while(val!=0)
   {
    temp[i++] = val % 2;
    val /= 2;
   }
  
   binary = "";
 
   for ( j=0; j<= i-1; j++)
   {
    binary += (char)(temp[i-j-1]+48);
   }
 
   if (binary.Length < 4)   //如果小于4位左边补零
   {
    int len = 4 - binary.Length;
    string str = "";

    while(len > 0)
    {
     str += "0";
     len --;
    }

    binary = str + binary;
   }

   return(binary);
  }

  private string CurrentPath(string physicalPath)
  {
   int ilastSlash = physicalPath.LastIndexOf(@"/");
   int length = physicalPath.Length - ilastSlash;
   return physicalPath.Remove(ilastSlash,length)+@"/";
  }
 }
}

原创粉丝点击