设为首页 加入收藏

TOP

简单了解条形码,二维码的生成(一)
2019-09-17 18:35:35 】 浏览:39
Tags:简单 了解 条形码 二维 生成

    因为条形码有不同的编码格式,使用时要注意编码格式。首先在 NuGet包管理器中引用下载BarcodeLib.dll文件。BarcodeLib.dll一维条码库,支持以下条码格式:UPC-A,UPC-E,UPC 2 Digit Ext,UPC 5 Digit Ext.,EAN-13,JAN-13,EAN-8,ITF-14,Codabar,PostNet,Bookland/ISBN,Code 11,Code 39,Code 39 Extended,Code 93,LOGMARS,MSI,Interleaved 2 of 5,Standard 2 of 5,Code 128,Code 128-A,Code 128-B,Code 128-C,Telepen ;

要执行的方法下:

System.Drawing.Image image; 
int width = 148, height = 55; 
string fileSavePath = AppDomain.CurrentDomain.BaseDirectory + "BarcodePattern.jpg"; 
if (File.Exists(fileSavePath)) 
  File.Delete(fileSavePath); 
GetBarcode(height, width, BarcodeLib.TYPE.CODE128//编码格式
, "要编码的数据", out image, fileSavePath); 
pictureBox1.Image = Image.FromFile("BarcodePattern.jpg"); 

注意要改的参数   

public static void GetBarcode(int height, int width, BarcodeLib.TYPE type, string code, out System.Drawing.Image image, string fileSaveUrl) 
{ 
  try 
  { 
    image = null; 
    BarcodeLib.Barcode b = new BarcodeLib.Barcode(); 
    b.BackColor = System.Drawing.Color.White;//图片背景颜色 
    b.ForeColor = System.Drawing.Color.Black;//条码颜色 
    b.IncludeLabel = true; 
    b.Alignment = BarcodeLib.AlignmentPositions.LEFT; 
    b.LabelPosition = BarcodeLib.LabelPositions.BOTTOMCENTER; 
    b.ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg;//图片格式 
    System.Drawing.Font font = new System.Drawing.Font("verdana", 10f);//字体设置 
    b.LabelFont = font; 
    b.Height = height;//图片高度设置(px单位) 
    b.Width = width;//图片宽度设置(px单位) 
    image = b.Encode(type, code);//生成图片 
    image.Save(fileSaveUrl, System.Drawing.Imaging.ImageFormat.Jpeg);
  } 
  catch (Exception ex) 
  { 
    image = null; 
  } 
} 

借鉴于挣脱生命的束缚:http://www.cnblogs.com/qqhfeng/p/4240597.html
详细的讲解:http://www.barcodelib.com/net_barcode/main.html

 

 

  二维码

适用于WinForm ,需要引用 zxing.dll文件  下载地址:http://pan.baidu.com/s/1ntNr79v

注意要引用的文件,空间
using com.google.zxing;
using COMMON = com.google.zxing.common;

代码如下:

private void BtnBm_Click(object sender, EventArgs e)  //生成二维码
        {
            if (string.IsNullOrEmpty(this.textBox1.Text.Trim()))
            {
                MessageBox.Show("请输入需要转换的信息!");
            }
            else
            {
                string content = this.textBox1.Text;//待编码数据
                try
                {
                    int QSize = Int32.Parse(txtSize.Text);//二维码大小
                    string s = hScrollBar1.Value.ToString("X");//二维码透明度
                    string q = hScrollBar2.Value.ToString("X");//背景透明度
                    string Scolor = "0x" + s + txtYSe.Text;//二维码颜色
                    string Qcolor = "0x" + q + txtBys.Text;//背景颜色
                    COMMON.ByteMatrix byteMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, QSize, QSize);
                    Bitmap bt = toBitmap(byteMatrix, Scolor, Qcolor);
                    pictureBox1.Image = bt;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
        public static Bitmap toBitmap(COMMON.ByteMatrix matrix, string scolor, string qcolor)
        {
            int width = matrix.Width;
            int height = matrix.Height;
            Bitmap bmap = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
            for (int x = 0; x < width; x++)
            {
                for (int y = 0; y < height; y++)
                {
                    bmap.SetPixel(x, y, matrix.get_Renamed(x, y) != -1 ? ColorTranslator.FromHtml(scolor) : ColorTranslator.FromHtml(qcolor));
                }
            }
            return bmap;
        }private void BtnSave_Click(object sender, EventArgs e) //保存
        {
            Image img = pictureBox1
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇企业移动应用和Smobiler 下一篇C#委托。

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目