C#代码 .Net6 Web API框架,生成条形码图片

 引入第三方依赖包

  <ItemGroup>
    <PackageReference Include="System.Drawing.Common" Version="9.0.7" />
    <PackageReference Include="ZXing.Net" Version="0.16.10" />
  </ItemGroup>


using ZXing;
using ZXing.Common;
using System.Drawing;
using System.Drawing.Imaging;


/// <summary>
        /// 生成条形码保存为图片
        /// </summary>
        /// <param name="barcodeText"></param>

        public static string GenerateBarcode(string barcodeText)
        {
            if (string.IsNullOrEmpty(barcodeText))
            {
                return "";
            }
            string imagePath = "temp/" + barcodeText + "_" + DateTime.Now.Ticks + ".png";
            // 创建一个条形码写入器
            var writer = new ZXing.BarcodeWriterPixelData
            {
                Format = ZXing.BarcodeFormat.CODE_39,
                Options = new EncodingOptions
                {
                    Height = 40, // 高度
                    Width = 200,    // 宽度
                    PureBarcode = false // 是否只包含条形码部分,不包含空白边距
                }
            };

            // 生成条形码图像数据
            var pixelData = writer.Write(barcodeText);

            // 将图像数据转换为Bitmap并保存为文件
            using (var bitmap = new Bitmap(pixelData.Width, pixelData.Height))
            {
                var bitmapData = bitmap.LockBits(new Rectangle(0, 0, pixelData.Width, pixelData.Height), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb);
                var bytes = new byte[pixelData.Pixels.Length];
                Buffer.BlockCopy(pixelData.Pixels, 0, bytes, 0, bytes.Length);
                Marshal.Copy(bytes, 0, bitmapData.Scan0, bytes.Length);
                bitmap.UnlockBits(bitmapData);

                bitmap.Save(imagePath, ImageFormat.Png);
            }
            return imagePath;
        }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值