/// <summary> /// Create barcode as Base64 string /// 将条形码创建为 Base64 字符串 /// </summary> /// <param name="options"Options>Options</param> /// <returns>String</returns> public static string Create(BarcodeOptions options) { var writer = new ZXing.ImageSharp.BarcodeWriter <Rgba32> { Format = ParseFormat(options.Type), Options = options, Renderer = new ZXing.ImageSharp.Rendering.ImageSharpRenderer <Rgba32> { Background = options.Background, Foreground = options.Foreground } }; using var image = writer.Write(options.Content); return(image.ToBase64String(PngFormat.Instance)); }
/// <summary> /// Async create barcode /// 异步创建条形码 /// </summary> /// <param name="stream">Stream to save the barcode</param> /// <param name="options">Options</param> /// <param name="token">Cancellation token</param> /// <returns>Task</returns> public static async Task CreateAsync(Stream stream, BarcodeOptions options, CancellationToken token = default) { var writer = new ZXing.ImageSharp.BarcodeWriter <Rgba32> { Format = ParseFormat(options.Type), Options = options, Renderer = new ZXing.ImageSharp.Rendering.ImageSharpRenderer <Rgba32> { Background = options.Background, Foreground = options.Foreground } }; using var image = writer.Write(options.Content); await image.SaveAsPngAsync(stream, token); }
private Image <Bgr565> GetQrImage(string tt) { var writer = new ZXing.ImageSharp.BarcodeWriter <Bgr565> { Format = BarcodeFormat.QR_CODE }; writer.Options.Hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8"); //编码问题 writer.Options.Hints.Add( EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H ); const int codeSizeInPixels = 500; //设置图片长宽 writer.Options.Height = writer.Options.Width = codeSizeInPixels; writer.Options.Margin = 1; //设置边框 return(writer.Write(writer.Encode(tt))); }
public byte[] Generate(string content, BarcodeType type, int?width, int?height, int?margin) { ZXing.BarcodeFormat barcodeFormat; switch (type) { case BarcodeType.AZTEC: barcodeFormat = ZXing.BarcodeFormat.AZTEC; break; case BarcodeType.CODABAR: barcodeFormat = ZXing.BarcodeFormat.CODABAR; break; case BarcodeType.CODE_39: barcodeFormat = ZXing.BarcodeFormat.CODE_39; break; case BarcodeType.CODE_93: barcodeFormat = ZXing.BarcodeFormat.CODE_93; break; case BarcodeType.CODE_128: barcodeFormat = ZXing.BarcodeFormat.CODE_128; break; case BarcodeType.DATA_MATRIX: barcodeFormat = ZXing.BarcodeFormat.DATA_MATRIX; break; case BarcodeType.EAN_8: barcodeFormat = ZXing.BarcodeFormat.EAN_8; break; case BarcodeType.EAN_13: barcodeFormat = ZXing.BarcodeFormat.EAN_13; break; case BarcodeType.ITF: barcodeFormat = ZXing.BarcodeFormat.ITF; break; case BarcodeType.MAXICODE: barcodeFormat = ZXing.BarcodeFormat.MAXICODE; break; case BarcodeType.PDF_417: barcodeFormat = ZXing.BarcodeFormat.PDF_417; break; case BarcodeType.QR_CODE: barcodeFormat = ZXing.BarcodeFormat.QR_CODE; break; case BarcodeType.RSS_14: barcodeFormat = ZXing.BarcodeFormat.RSS_14; break; case BarcodeType.RSS_EXPANDED: barcodeFormat = ZXing.BarcodeFormat.RSS_EXPANDED; break; case BarcodeType.UPC_A: barcodeFormat = ZXing.BarcodeFormat.UPC_A; break; case BarcodeType.UPC_E: barcodeFormat = ZXing.BarcodeFormat.UPC_E; break; case BarcodeType.UPC_EAN_EXTENSION: barcodeFormat = ZXing.BarcodeFormat.UPC_EAN_EXTENSION; break; case BarcodeType.MSI: barcodeFormat = ZXing.BarcodeFormat.MSI; break; case BarcodeType.PLESSEY: barcodeFormat = ZXing.BarcodeFormat.PLESSEY; break; case BarcodeType.IMB: barcodeFormat = ZXing.BarcodeFormat.IMB; break; default: throw new ArgumentException(); } var barcodeWriter = new ZXing.ImageSharp.BarcodeWriter <Rgba32> { Format = barcodeFormat }; if (width.HasValue || height.HasValue || margin.HasValue) { barcodeWriter.Options = new EncodingOptions(); if (width.HasValue) { barcodeWriter.Options.Width = width.Value; } if (height.HasValue) { barcodeWriter.Options.Height = height.Value; } if (margin.HasValue) { barcodeWriter.Options.Margin = margin.Value; } } using (var image = barcodeWriter.Write(content)) { using (var stream = new MemoryStream()) { image.SaveAsPng(stream); return(stream.ToArray()); } } }