codebude / QRCoder

A pure C# Open Source QR Code implementation
MIT License
4.42k stars 1.08k forks source link

[WIP/QRCoder2] System.Drawing vs X #548

Open codebude opened 1 month ago

codebude commented 1 month ago

Note: This issue is part of the planning of version 2 of the QRCoder. The meta-issue can be found here. These comments have been copied into this issue here, with the comments marked as such. If comments on the topic of this issue already exist in the meta thread, they have been copied here, naming the authors.

Topic - Part A

Should we keep System.Drawing.Common based renderers and add new ones with library 'X' or do we ditch System.Drawing.Common completely and replace it with library 'X'?

Topic - Part B

In past discussions, several libraries have been mentioned as replacements for System.Drawing. Among others ImageSharp (now partly has to be licensed?), SkiaSharp (native dependencies under Linux), Maui.Graphics or something else?

codebude commented 1 month ago

Part A

I suggest maintaining the existing code. While it's usefulness is likely declining, I see no reason to pitch the existing code. It will certainly be useful for existing users that wish to upgrade to 2.x, and serves as a template (if we like the design pattern) for SkiaSharp / ImageSharp / etc.

Originally posted by @Shane32 here.

Part B

I suggest 'whatever contributors wish to offer PRs for'. Ideally:

  • System.Drawing.Common
  • SkiaSharp
  • ImageSharp 2.x
  • ImageSharp (latest)
  • Maui.Graphics

Compare to ZXing.Net which has these NuGet packages available:

  • ZXing.Net.Bindings.Windows.Compatibility
  • ZXing.Net.Bindings.SkiaSharp
  • ZXing.Net.Bindings.ImageSharp
  • ZXing.Net.Bindings.ImageSharp.V2

Originally posted by @Shane32 here.

codebude commented 1 month ago

ImageSharp is your friend.

Originally posted by @catdsnny here.