引入第三方依赖包
<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;
}

199

被折叠的 条评论
为什么被折叠?



