Salvando Códigos QR como SVG no IronQR

Curtis Chau
Curtis Chau
Updated: 29 de junho de 2026

A IronQR não exporta códigos QR diretamente para SVG. Você ainda pode produzir um arquivo vetorial redesenhando o bitmap gerado como retângulos SVG com uma biblioteca de terceiros.

A razão é a pilha de imagens subjacente. A IronQR usa SixLabors.ImageSharp para processamento de imagens, que lida com formatos raster como PNG, JPEG e BMP, mas não oferece saída SVG. SVG simplesmente não é um formato alvo suportado pela dependência.

Solução

Gere o código QR com a IronQR como de costume, depois percorra seus pixels e reconstrua a matriz como formas vetoriais usando Svg.NET. Você mantém a geração de QR da IronQR e ganha controle total sobre o estilo e a estrutura do SVG.

1. Gera o Código QR e Converte para um Bitmap

Escreva o código QR, salve-o em um AnyBitmap, depois converta isso para um System.Drawing.Bitmap para que os pixels possam ser lidos individualmente.

var qr = QrWriter.Write("Hello SVG");
var anyBitmap = qr.Save();
// Convert AnyBitmap to System.Drawing.Bitmap
System.Drawing.Bitmap bit = anyBitmap;

2. Redesenhe os pixels como retângulos SVG

Crie um SvgDocument dimensionado para o bitmap, depois percorra os pixels e adicione um SvgRectangle de 1x1 onde um pixel é lido como preto. A verificação de nível (R, G, e B todos abaixo de 128) trata pixels quase pretos como células preenchidas.

// Create new SVG document
var svgDoc = new SvgDocument
{
    Width = bit.Width,
    Height = bit.Height
};
// Loop through bitmap pixels and add black pixels as SVG rectangles
for (int y = 0; y < bit.Height; y++)
{
    for (int x = 0; x < bit.Width; x++)
    {
        System.Drawing.Color pixel = bit.GetPixel(x, y);
        // Check if pixel is black (or close enough)
        if (pixel.R < 128 && pixel.G < 128 && pixel.B < 128)
        {
            var rect = new SvgRectangle
            {
                X = x,
                Y = y,
                Width = 1,
                Height = 1,
                Fill = new SvgColourServer(System.Drawing.Color.Black)
            };
            svgDoc.Children.Add(rect);
        }
    }
}

3. Escreva o arquivo SVG

Salve o documento no disco assim que cada célula preta tiver sido adicionada.

// Save the result as SVG
svgDoc.Write("qr-from-ironqr.svg");

Isso proporciona um código QR escalável, baseado em vetor, adequado para impressão ou uso de alta resolução.

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

Leia mais

Pronto para começar?

Nuget Downloads 80,612Versão:2026.11recém-lançado