C# 如何在不丢失分辨率的情况下重新调整QRCode图像的大小?

C# 如何在不丢失分辨率的情况下重新调整QRCode图像的大小?,c#,qr-code,C#,Qr Code,我正在使用QR代码库“”生成QR代码,但它生成了一个大尺寸的QR代码,我正在尝试将其调整为70x70px,但是生成的图像的分辨率不好 protected void BtnPrint_Click(object sender, EventArgs e) { PrintDocument pd = new PrintDocument(); pd.PrintPage += PrintPage; pd.Print();

我正在使用QR代码库“”生成QR代码,但它生成了一个大尺寸的QR代码,我正在尝试将其调整为70x70px,但是生成的图像的分辨率不好

protected void BtnPrint_Click(object sender, EventArgs e)
        {
            PrintDocument pd = new PrintDocument();
            pd.PrintPage += PrintPage;
            pd.Print();
        }

        private void PrintPage(object o, PrintPageEventArgs e)
        {
            QRCodeEncoder encoder = new QRCodeEncoder();
            String EmployeeId= this.Request.QueryString.Get("EmployeeId").ToString();
            Bitmap img = new Bitmap (encoder.Encode(EmployeeId), new Size(70,70));


            Point loc = new Point(100, 100);
            e.Graphics.DrawImage(img, loc);
        }
如何在不丢失分辨率的情况下调整此QRCode的大小

编辑:

是否可以从头创建所需大小的QRCode?

您可以

encoder.QRCodeScale = (number).
它控制用于创建图像的“比例”

“比例”直接控制点的大小(以像素为单位)。比例为1表示每个点的宽度/高度为1像素

请注意,在大小计算中有一个错误,因此图像的宽度和高度都可以裁剪为1像素(如果您查看,最后一行/列为空白)

你可以

encoder.QRCodeScale = (number).
它控制用于创建图像的“比例”

“比例”直接控制点的大小(以像素为单位)。比例为1表示每个点的宽度/高度为1像素

请注意,在大小计算中有一个错误,因此图像的宽度和高度都可以裁剪为1像素(如果您查看,最后一行/列为空白)


如果您比较我们在图形程序中创建的这些二维码,您将看到分辨率上的差异。第一个(2488)的刻度为35,第二个(2490)的刻度为40。这意味着每个模块是35或40像素的正方形。如果你在为广告牌(而不是名片)制作二维码,你需要确保每个模块的分辨率足够高,以至于当打印得非常大时不会“像素化”(模糊)。不利的一面是,如果(像Codacast)创建(并保存)大量图像,您将创建一个更大的图像,这将占用更多内存-希望这有帮助:-)


如果您比较我们在图形程序中创建的这些二维码,您将看到分辨率上的差异。第一个(2488)的刻度为35,第二个(2490)的刻度为40。这意味着每个模块是35或40像素的正方形。如果你在为广告牌(而不是名片)制作二维码,你需要确保每个模块的分辨率足够高,以至于当打印得非常大时不会“像素化”(模糊)。不利的一面是,如果(像Codacast)创建(并保存)大量图像,您将创建一个更大的图像,这将占用更多内存-希望这有帮助:-)


当你命名一个库时,链接它是一种很好的礼节。@xanatos谢谢,请检查我的编辑当你命名一个库时,链接它是一种很好的礼节。@xanatos谢谢,请检查我的编辑edit@user4612290如果将其设置为1,则可以得到较小的值。如果将二维码的点设置为小于1像素,则二维码将无法读取@user4612290如果将其设置为1,则可以获得的最小值。如果将二维码的点设置为小于1像素,则二维码将无法读取!