示例#1
0
        /// <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);
        }
示例#2
0
        /// <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));
        }