c# 生成条形码标识类

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)+@"/";
  }
 }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值