【问题标题】:Load generated image into asp image control wihtout saving it physically将生成的图像加载到 asp 图像控件中,无需物理保存
【发布时间】:2020-10-07 03:49:37
【问题描述】:

我正在尝试将图像加载到 asp 图像控件中。 该图像是从 zxing Barcode Writter 生成的。 我的问题是,我可以在不先物理保存的情况下加载它吗?

string barcode = "xxxxxx";
BarcodeWriter writer = new BarcodeWriter() { Format = BarcodeFormat.CODE_128 };

imgBarCode.ImageUrl = writer.Write(barcode);

...如何将 writer.Writer 引用到图像控件“imgBarCode”

【问题讨论】:

  • Write 方法返回什么类型?如果您可以从BarcodeWriter 实例中获取实际的图像字节,那么您可以Base64 对其进行编码并从中构造一个数据URI。然后可以将其用作图像控件上的源/imageurl。参见(例如)this question
  • @user1429080 它返回一个位图,正如您所说的将其保存在内存流中,转换为 base64 字符串并完成。编辑:谢谢队友

标签: c# asp.net zxing


【解决方案1】:

根据 user1429080 的建议,我最终得到了这个:

string barcode = "12345"

BarcodeWriter writer = new BarcodeWriter() { Format = BarcodeFormat.CODE_128, Options = new ZXing.Common.EncodingOptions { Height = 100, Width = 300 } };

var bitmap = writer.Write(barcode);    
MemoryStream ms = new MemoryStream();
bitmap.Save(ms, ImageFormat.Jpeg);
var b64 = Convert.ToBase64String(ms.ToArray());

imgBarCode.ImageUrl = "data:image/jpeg;base64," + b64;

【讨论】:

  • 很高兴你得到它的工作。不过有一件事:如果那是实际代码,那么您可能应该查看您正在使用的每个对象并检查哪些是IDisposable。确保在处理完它们后将它们丢弃......
  • 谢谢,提醒我!最后我 .Dispose() 他们。
猜你喜欢
  • 1970-01-01
  • 2014-03-28
  • 1970-01-01
  • 1970-01-01
  • 2013-11-15
  • 2011-07-19
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多