【.NET/C#】QRコードのPNGファイルを作る【QRCoder】

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【.NET/C#】QRコードのPNGファイルを作る【QRCoder】

2024-7-30 |

.NETでQRCoderを使ってQRコードを描きたい!

概要

今回の記事では、.NETでQRCoderを使ってQRコードを描く手順を掲載する。

仕様書

環境

  • NET 8.0
  • QRCoder 1.6.0

手順書

NuGetパッケージマネージャーなどからQRCoderをインストールする。

Install-Package QRCoder

当ブログのURL(https://blog.nekonium.com)のQRコードを作ってPNGファイルに保存する例。

using QRCoder;
using System.Runtime.InteropServices;

namespace tests
{
    internal class Program
    {
        static public void DrawQRCode()
        {
            string qrText = "https://blog.nekonium.com";
            var qrGenerator = new QRCodeGenerator();
            var qrData = qrGenerator.CreateQrCode(qrText, QRCodeGenerator.ECCLevel.Q);
            var qrCode = new BitmapByteQRCode(qrData);
            var qrCode = new PngByteQRCode(qrData);
            byte[] qrCodeBytes = qrCode.GetGraphic(8);
            File.WriteAllBytes("qr.png", qrCodeBytes);
        }

        static void Main(string[] args)
        {
            DrawQRCode();
        }
    }
}

QRCodeGeneratorのメソッドCreateQrCodeのコンストラクターの引数のQRCodeGenerator.ECCLevel.QはError Correction Levelで冗長性の割合を指定できる。QRCodeGenerator.ECCLevel.Qでは、約25%くらいの冗長性を持たせてコードの一部が破損しても正しいデータが取り出せるようになる。L<M<Q<Hの順で冗長性が高くなってく。

PngByteQRCodeのメソッドGetGraphicの引数でQRコードの1つの点の大きさを整数で指定できる。

PngByteQRCodeの代わりにBitmapByteQRCodeを使うとbmpファイル用のByte列を作れる。

まとめ(感想文)

楽にQRコードを作れて良いね!