IronQR'de QR Kodlarını SVG Olarak Kaydetme
IronQR, QR kodlarını doğrudan SVG'e dışa aktaramaz. Yine de oluşturulan bit eşlemi bir üçüncü taraf kütüphane ile SVG dikdörtgenleri olarak yeniden çizerek vektör dosyası üretebilirsiniz.
Sebep alttaki görüntü yığınıdır. IronQR, görüntü işleme için SixLabors.ImageSharp kullanır ve PNG, JPEG, BMP gibi raster formatları işler ancak SVG çıktısı sunmaz. SVG, bağımlılığın desteklediği bir hedef format değildir.
Çözüm
IronQR ile her zamanki gibi QR kodunu oluşturun, ardından pikseleri dolaşarak ve matrisi Svg.NET kullanarak vektör şekilleri olarak yeniden oluşturun. IronQR'nin QR oluşturmasını korursunuz ve SVG'nin stil ve yapısını tamamen kontrol edersiniz.
1. QR Kodunu Oluşturun ve Bir Bitmap'e Dönüştürün
QR kodu yazın, bir AnyBitmap'e kaydedin, sonra piksellerin tek tek okunabilmesi için bunu bir System.Drawing.Bitmap'e dönüştürün.
var qr = QrWriter.Write("Hello SVG");
var anyBitmap = qr.Save();
// Convert AnyBitmap to System.Drawing.Bitmap
System.Drawing.Bitmap bit = anyBitmap;
2. Pikselleri SVG Dikdörtgenleri Olarak Yeniden Çizin
Bitmap boyutunda bir SvgDocument oluşturun, sonra pikselleri döngüye alın ve bir piksel siyah okunduğunda oraya 1x1 SvgRectangle ekleyin. Eşik kontrolü (R, G ve B, hepsi 128'in altında), siyaha yakın pikselleri doldurulmuş hücreler olarak kabul eder.
// 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. SVG Dosyasını Yazın
Her siyah hücre eklendiği için belgeyi diske kaydedin.
// Save the result as SVG
svgDoc.Write("qr-from-ironqr.svg");
Bu size baskı veya yüksek çözünürlüklü kullanım için uygun ölçeklenebilir, vektör tabanlı bir QR kodu verir.

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.