.NET Core(C#)使用BarcodeLib生成条码图片

原文:https://www.cjavapy.com/article/786/

 

使用Nuget界面管理器

搜索“BarcodeLib”,在列表中找到它,点击“安装”

  

using System;
using System.IO;
using System.DrawingCore.Imaging;
using BarcodeLib;

namespace MyTest.Common
{
    public class BarcodeHelper
    {
        public static void GetBarCode(string Code, string path, TYPE type = TYPE.CODE128, int Length = 1000, int Height = 200, int FontSize = 40)
        {
            try
            {
                using (Barcode barcode = new Barcode())
                {
                    using (MemoryStream ms = new MemoryStream())
                    {
                        barcode.IncludeLabel = true;
                        barcode.Alignment = AlignmentPositions.CENTER;
                        barcode.LabelFont = new System.Drawing.Font(System.Drawing.FontFamily.GenericMonospace, FontSize, System.Drawing.FontStyle.Regular);
                        var barcodeImage = barcode.Encode(type, Code, System.Drawing.Color.Black, System.Drawing.Color.White, Length, Height);
                        barcodeImage.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }

        public static byte[] GetBarCode(string Code, TYPE type = TYPE.CODE128, int Length = 1000, int Height = 200, int FontSize = 40)
        {
            try
            {
                using (Barcode barcode = new Barcode())
                {
                    using (MemoryStream ms = new MemoryStream())
                    {
                        barcode.IncludeLabel = true;
                        barcode.Alignment = AlignmentPositions.CENTER;
                        barcode.LabelFont = new System.Drawing.Font(System.Drawing.FontFamily.GenericMonospace, FontSize, System.Drawing.FontStyle.Regular);
                        var barcodeImage = barcode.Encode(type, Code, System.Drawing.Color.Black, System.Drawing.Color.White, Length, Height);
                        barcodeImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                        ms.Position = 0;
                        using (BinaryReader reader = new BinaryReader(ms))
                        {
                            byte[] bytes = (byte[])reader.ReadBytes((int)ms.Length).Clone();
                            reader.Dispose();
                            ms.Dispose();
                            return bytes;
                        }
                    }
                }
            }
            catch (Exception)
            {
                return null;
            }
        }
    }
}

 webapi中使用时直接输出图片示例:

[HttpGet]
public IActionResult GetBarCode(string Code)
{
   var bytes = BarcodeHelper.GetBarCode(Code);          
   return File(bytes, "image/jpeg");
}

 

posted @ 2022-07-22 16:17  hellocjr  阅读(494)  评论(0编辑  收藏  举报