【发布时间】:2018-05-28 10:10:16
【问题描述】:
我正在尝试生成条形码图像。当我使用以下代码时,我可以创建一个 base64 字符串,但它给出了一个空白图像。我检查了内容不是空白或空白。
有些代码使用CoreCompat.System.Drawing,但我无法使其工作,因为我在 OS X 环境中工作。
我做错了吗?
代码:
[HtmlTargetElement("barcode")]
public class BarcodeHelper: TagHelper {
public override void Process(TagHelperContext context, TagHelperOutput output) {
var content = context.AllAttributes["content"].Value.ToString();
var alt = context.AllAttributes["alt"].Value.ToString();
var width = 250;
var height = 250;
var margin = 0;
var barcodeWriter = new ZXing.BarcodeWriterPixelData {
Format = ZXing.BarcodeFormat.CODE_128,
Options = new QrCodeEncodingOptions {
Height = height, Width = width, Margin = margin
}
};
var pixelData = barcodeWriter.Write(content);
using (var image = Image.LoadPixelData<Rgba32>(pixelData.Pixels, width, height))
{
output.TagName = "img";
output.Attributes.Clear();
output.Attributes.Add("width", width);
output.Attributes.Add("height", height);
output.Attributes.Add("alt", alt);
output.Attributes.Add("src", string.Format("data:image/png;base64,{0}", image.ToBase64String(ImageFormats.Png)));
}
}
}
下面有一些代码 sn-ps。他们可以编写内容并将结果数据轻松转换为base64 字符串。但是当我调用BarcodeWriter 时,它需要一个类型<TOutput>,我不知道该发送什么。我正在使用ZXing.Net 0.16.2。
var writer = BarcodeWriter // BarcodeWriter without <TOutput> is missing. There is BarcodeWriter<TOutput> I can call.
{
Format = BarcodeFormat.CODE_128
}
var result = writer.write("content");
【问题讨论】:
标签: barcode asp.net-core-2.0 zxing.net imagesharp