Codemaru
1.0.0.0
QR 코드, 모바일 랜딩 페이지, vCard 연락처 저장과 명함 디자인을 한 화면에서 제공하는 디지털 명함 서비스입니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
FreeQrSvgGenerator.cs
이 파일의 문서화 페이지로 가기
1
using
QRCoder;
2
using
System.Text.RegularExpressions;
3
4
namespace
Codemaru.Services
;
5
14
public
sealed
partial class
FreeQrSvgGenerator
:
IQrSvgGenerator
15
{
56
public
string
CreateSvg
(
string
payload,
string
foreground =
"#111111"
,
string
background =
"#ffffff"
)
57
{
58
var text =
string
.IsNullOrWhiteSpace(payload) ?
"https://dreamine.local/card"
: payload.Trim();
59
var fg =
NormalizeColor
(foreground,
"#111111"
);
60
var bg =
NormalizeColor
(background,
"#ffffff"
);
61
62
using
var generator =
new
QRCodeGenerator();
63
using
var data = generator.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q);
64
65
var qr =
new
SvgQRCode(data);
66
var svg = qr.GetGraphic(
67
pixelsPerModule: 6,
68
darkColorHex: fg,
69
lightColorHex: bg,
70
drawQuietZones:
false
,
71
sizingMode: SvgQRCode.SizingMode.ViewBoxAttribute);
72
73
return
AddCssClass
(svg);
74
}
75
100
private
static
string
AddCssClass
(
string
svg)
101
{
102
return
SvgTagRegex
().Replace(svg, match =>
103
{
104
var tag = match.Value;
105
return
tag.Contains(
"class="
, StringComparison.OrdinalIgnoreCase)
106
? tag
107
: tag.Replace(
"<svg"
,
"<svg class=\"qr-svg\""
, StringComparison.Ordinal);
108
}, count: 1);
109
}
110
143
private
static
string
NormalizeColor
(
string
color,
string
fallback)
144
{
145
if
(
string
.IsNullOrWhiteSpace(color))
146
{
147
return
fallback;
148
}
149
150
var value = color.Trim();
151
return
value.Length is 4 or 7 && value[0] ==
'#'
&& value.Skip(1).All(Uri.IsHexDigit)
152
? value
153
: fallback;
154
}
155
172
[GeneratedRegex(
"<svg\\b[^>]*>"
, RegexOptions.IgnoreCase | RegexOptions.CultureInvariant)]
173
private
static
partial Regex
SvgTagRegex
();
174
}
Codemaru.Services
Definition
CardHybridCircuitSession.cs:8
Codemaru.Services.FreeQrSvgGenerator
Definition
FreeQrSvgGenerator.cs:15
Codemaru.Services.FreeQrSvgGenerator.CreateSvg
string CreateSvg(string payload, string foreground="#111111", string background="#ffffff")
Definition
FreeQrSvgGenerator.cs:56
Codemaru.Services.FreeQrSvgGenerator.NormalizeColor
static string NormalizeColor(string color, string fallback)
Definition
FreeQrSvgGenerator.cs:143
Codemaru.Services.FreeQrSvgGenerator.SvgTagRegex
static partial Regex SvgTagRegex()
Codemaru.Services.FreeQrSvgGenerator.AddCssClass
static string AddCssClass(string svg)
Definition
FreeQrSvgGenerator.cs:100
Codemaru.Services.IQrSvgGenerator
Definition
IQrSvgGenerator.cs:12
Services
FreeQrSvgGenerator.cs
다음에 의해 생성됨 :
1.17.0