如何在.NET 6中创建条形码和QR码而不使用System.Drawing.Common?

3
我已经使用ZXing.Net几年来创建条形码和二维码。然而,它依赖于(更准确地说,我的实际渲染到BMP的实现依赖于)System.Drawing.Common,而这个库只兼容Windows,随着.NET 6.0的发布,我无法在托管在Docker Linux容器中的.NET 6.0应用程序中再使用此库。
我尝试使用Microsoft.Maui.Graphics从ZXing PixelData创建图像,但没有成功 - 目前缺乏Microsoft.Maui.Graphics文档并没有帮助。
有任何想法如何在不使用System.Drawing.Common的情况下在.NET 6中创建条形码和二维码吗?

你必须阅读整篇文章,它提供了特定的库替代方案来消除依赖关系。 - Hans Passant
我更愿意使用 Microsoft.Maui.Graphics 而非第三方库,但是由于该库的文档非常少(如我在问题中所述),我不知道该如何继续。 - ProfNimrod
@ProfNimrod,那么ZXing是什么?为什么使用一个未发布的、仍处于实验阶段的库不如使用流行的、维护良好的专门构建的替代品呢?正是因为Microsoft.Maui.Graphics文档在这一点上缺失。因为它还没有完成,也不适合应用程序开发人员使用。更不用说你将添加一个巨大的依赖项(MAUI)只是为了使用一个单独的类。 - Panagiotis Kanavos
我所说的是BMP的实际渲染。我宁愿使用.NET 6中System.Drawing.Common的等效组件。如果微软提供了条形码库,我也会更愿意使用它,但据我所知他们并没有提供。 - ProfNimrod
为什么呢?我怀疑你误解了System.Drawing.Common的用途 - 它不是用来生成图像的,而是使用Windows的GDI+ API来显示它们。即使如此,现在也已经过时且速度太慢了。相应的MAUI库将被用于显示图像,而不是生成图像。更不用说它不会在WebAssembly上工作了。开发人员过分地使用System.Drawing进行图像处理,但它对此太受限制了。这就是为什么即使在.NET中,老年人也使用ImageSharp和Skia。 - Panagiotis Kanavos
显示剩余4条评论
1个回答

3

谢谢 - 我应该说“我的实现”依赖于system.drawing.common。我会看看这些其他绑定,但我仍然宁愿使用MS库进行渲染 - 无论是什么跨平台等效的system.drawing.common。此时,我假设它将是Microsoft.Maui.Graphics,但也许不是。 - ProfNimrod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接