바코드 이미지를 생성하려고합니다. 다음 코드를 사용하면 base64
문자열을 만들 수 있지만 빈 이미지가 나타납니다. 내용이 비어 있거나 공백이 아닌지 확인했습니다..Net Core 2.0에서 XZing.Net 및 ImageSharp로 바코드 이미지를 만드는 방법
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)));
}
}
}
다음과 같은 몇 가지 코드 조각이있다. 콘텐츠를 작성하고 결과 데이터를 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");
자세한 내용은 Micheal에게 문의 해 주셔서 감사합니다. –