QrCoder Asp.Net - 如何消除噪音?

QrCoder Asp.Net - How to remove noise?

现在我正在使用来自 Asp.Net 的 QrCoder 创建我的 QR 码。你可以在下面看到我的代码:
SvgQrCode:

    public void UpdateText(string value)
    {
        using (var qrGenerator = new QRCodeGenerator())
        {
            using (var qrCodeData = qrGenerator.CreateQrCode(value, QRCodeGenerator.ECCLevel.Q))
            {
                using (var qrCode = new QRCode(qrCodeData))
                {
                    using (var bitmap = qrCode.GetGraphic(1, Color.Black, Color.White, false))
                    {
                        Image.FromData(bitmap);
                    }
                    Text = value;
    }   }   }   }

Xml:

   <Image Source="{Binding Element.ImageSource}"
          RenderOptions.BitmapScalingMode="NearestNeighbor"
          RenderOptions.EdgeMode="Aliased"
          Width="{Binding Element.Width}"
          Height="{Binding Element.Height}"
          Stretch="Uniform">

发生了什么: 生成的 QR 码有一些轻微的噪音,您可以在左侧的屏幕截图中看到这里(左侧 Gray8,右侧 BlackWhite):


我试过的: 我在方法 Decode 中将 PixelformatsGray8 更改为 BlackWhite。结果就是上面的截图(右边二维码)

 internal static BitmapSource Decode(string value, int? pixelWidth, BitmapCacheOption cacheOption = BitmapCacheOption.OnLoad)
 {
        // ..some code..
        var grey = new FormatConvertedBitmap(bitmap, PixelFormats.Gray8, BitmapPalettes.Gray256, 1.0);
        return grey;
 }

我尝试的另一件事是将 qrCode.GetGraphic(1) 更改为更高的值,例如 qrCode.GetGraphic(10),这会增加 pixels per module。但这不是解决问题的干净方法,因为噪音变得非常小(所以你几乎看不到它了)并且每个模块的像素都在增加。

我的问题: 我对二维码、条形码和图像使用解码方法。所以如果我要添加图像,它将是黑白的。当然,我可以使用 if 语句并检查它是否是图像或 qr/bar-code。但为什么 PixelFormats.Gray8 会产生噪音?为什么不干净?

我发现了问题。我忽略了这些行,没有意识到 .jpeg 被选为格式:

public void FromData(Bitmap bitmap)
{
   using (var ms = new MemoryStream())
   {
     bitmap.Save(ms, ImageFormat.Jpeg);
     //...