Skip to content

Commit 885d235

Browse files
committed
Upgrades, upgrades
1 parent 19761fe commit 885d235

13 files changed

Lines changed: 49 additions & 118 deletions

File tree

.github/workflows/continuous-integration.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ jobs:
2020
name: Build and run tests
2121
steps:
2222
- name: Checkout git repository
23-
uses: actions/checkout@v4
23+
uses: actions/checkout@v6
2424
with:
2525
fetch-depth: 0
2626

27-
- uses: actions/setup-dotnet@v4
27+
- uses: actions/setup-dotnet@v5
2828
with:
2929
dotnet-version: |
3030
6.x
@@ -40,7 +40,7 @@ jobs:
4040
run: dotnet test --no-build --verbosity normal
4141

4242
- name: Upload test results
43-
uses: actions/upload-artifact@v4
43+
uses: actions/upload-artifact@v7
4444
if: always()
4545
with:
4646
name: TestResults-${{ runner.os }}

.github/workflows/demos.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ jobs:
1616
name: Build demo projects
1717
steps:
1818
- name: Checkout git repository
19-
uses: actions/checkout@v4
19+
uses: actions/checkout@v6
2020
with:
2121
fetch-depth: 0
2222

23-
- uses: actions/setup-dotnet@v4
23+
- uses: actions/setup-dotnet@v5
2424
with:
2525
dotnet-version: |
2626
6.x

Demo-ASP.NET-Core/Demo-ASP.NET-Core.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
</PropertyGroup>
77

88
<ItemGroup>
9-
<PackageReference Include="Net.Codecrete.QrCodeGenerator" Version="2.1.0" />
10-
<PackageReference Include="SkiaSharp" Version="2.88.6" />
9+
<PackageReference Include="Net.Codecrete.QrCodeGenerator" Version="3.0.0" />
10+
<PackageReference Include="SkiaSharp" Version="3.119.2" />
1111
</ItemGroup>
1212

1313
</Project>

Demo-ASP.NET-Core/QrCodeController.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public ActionResult<byte[]> GeneratePng([FromQuery(Name = "text")] string text,
3434
[FromQuery(Name = "ecc")] int? ecc, [FromQuery(Name = "border")] int? borderWidth)
3535
{
3636
ecc = Math.Clamp(ecc ?? 1, 0, 3);
37-
borderWidth = Math.Clamp(borderWidth ?? 3, 0, 999999);
37+
borderWidth = Math.Clamp(borderWidth ?? 4, 0, 999999);
3838

3939
var qrCode = QrCode.EncodeText(text, errorCorrectionLevels[(int)ecc]);
4040
byte[] png = qrCode.ToPng(20, (int)borderWidth);
@@ -54,7 +54,7 @@ public ActionResult<byte[]> GenerateSvg([FromQuery(Name = "text")] string text,
5454
[FromQuery(Name = "ecc")] int? ecc, [FromQuery(Name = "border")] int? borderWidth)
5555
{
5656
ecc = Math.Clamp(ecc ?? 1, 0, 3);
57-
borderWidth = Math.Clamp(borderWidth ?? 3, 0, 999999);
57+
borderWidth = Math.Clamp(borderWidth ?? 4, 0, 999999);
5858

5959
var qrCode = QrCode.EncodeText(text, errorCorrectionLevels[(int)ecc]);
6060
byte[] svg = Encoding.UTF8.GetBytes(qrCode.ToSvgString((int)borderWidth));

Demo-ASP.NET-Core/wwwroot/home.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<h1>QR Code</h1>
1515
<form class="pure-form">
1616
<fieldset>
17-
<div class="pure-u-1"><img id="qrcode" src="qrcode/svg?text=Hello%20world!&ecc=1&border=3" /></div>
17+
<div class="pure-u-1"><img id="qrcode" src="qrcode/svg?text=Hello%20world!&ecc=1&border=4" alt="QR Code"/></div>
1818
<div class="pure-u-1 more-space"><input id="text" type="text" placeholder="QR code text" value="Hello world!" /></div>
1919
<div class="pure-u-1 pure-u-lg-1-2 more-space">
2020
<label for="ecc">
@@ -30,7 +30,7 @@ <h1>QR Code</h1>
3030
</div>
3131
<div class="pure-u-1 pure-u-lg-1-2 more-space">
3232
<label for="border">
33-
Border width: <input type="number" id="border" value="3" min="0" max="99999" />
33+
Border width: <input type="number" id="border" value="4" min="0" max="99999" />
3434
</label>
3535
</div>
3636
</fieldset>

Demo-ImageMagick/Demo-ImageMagick.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
</PropertyGroup>
1010

1111
<ItemGroup>
12-
<PackageReference Include="Magick.NET-Q16-AnyCPU" Version="14.10.1" />
13-
<PackageReference Include="Net.Codecrete.QrCodeGenerator" Version="2.1.0" />
12+
<PackageReference Include="Magick.NET-Q16-AnyCPU" Version="14.13.0" />
13+
<PackageReference Include="Net.Codecrete.QrCodeGenerator" Version="3.0.0" />
1414
</ItemGroup>
1515

1616
</Project>

Demo-ImageSharp/Demo-ImageSharp.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<TargetFramework>net8.0</TargetFramework>
66
<RootNamespace>Net.Codecrete.QrCodeGenerator.Demo</RootNamespace>
77
<PackageId>Net.Codecrete.QrCodeGenerator.Demo</PackageId>
8-
<Version>2.1.0</Version>
8+
<Version>3.0.0</Version>
99
<Authors>Manuel Bleichenbacher</Authors>
1010
<Product>QR Code Generator for .NET</Product>
1111
<Description>Demo application for QR Code Generation</Description>
@@ -27,7 +27,7 @@
2727
</ItemGroup>
2828

2929
<ItemGroup>
30-
<PackageReference Include="Net.Codecrete.QrCodeGenerator" Version="2.*" />
30+
<PackageReference Include="Net.Codecrete.QrCodeGenerator" Version="3.*" />
3131
<PackageReference Include="SixLabors.ImageSharp.Drawing" Version="2.1.7" />
3232
</ItemGroup>
3333

Demo-QRCode-Variety/Demo-QRCode-Variety.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="Net.Codecrete.QrCodeGenerator" Version="2.*" />
10+
<PackageReference Include="Net.Codecrete.QrCodeGenerator" Version="3.*" />
1111
</ItemGroup>
1212

1313
</Project>

Demo-QRCode-Variety/Program.cs

Lines changed: 10 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,11 @@ internal class Program
3636
// The main application program.
3737
internal static void Main()
3838
{
39+
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); // Enable support for encodings like ShiftJIS
40+
3941
DoBasicDemo();
4042
DoVarietyDemo();
41-
DoSegmentDemo();
42-
DoMaskDemo();
43+
DoEncodingDemo();
4344
DoBinaryDemo();
4445
}
4546

@@ -48,8 +49,8 @@ internal static void Main()
4849
// Creates a single QR code, then writes it to an SVG file.
4950
private static void DoBasicDemo()
5051
{
51-
const string text = "Hello, world!"; // User-supplied Unicode text
52-
var errCorLvl = QrCode.Ecc.Low; // Error correction level
52+
const string text = "Hello, world!"; // Payload text
53+
var errCorLvl = QrCode.Ecc.Low; // Minimal error correction level
5354

5455
var qr = QrCode.EncodeText(text, errCorLvl); // Make the QR code symbol
5556
SaveAsSvg(qr, "hello-world-QR.svg", border: 4); // Save as SVG
@@ -65,11 +66,7 @@ private static void DoVarietyDemo()
6566

6667
// Alphanumeric mode encoding (5.5 bits per character)
6768
qr = QrCode.EncodeText("DOLLAR-AMOUNT:$39.87 PERCENTAGE:100.00% OPERATIONS:+-*/", QrCode.Ecc.High);
68-
SaveAsSvg(qr, "alphanumeric-QR.svg", 2);
69-
70-
// Unicode text as UTF-8
71-
qr = QrCode.EncodeText("こんにちwa、世界! αβγδ", QrCode.Ecc.Quartile);
72-
SaveAsSvg(qr, "unicode-QR.svg", 3);
69+
SaveAsSvg(qr, "alphanumeric-QR.svg", 4);
7370

7471
// Moderately large QR code using longer text (from Lewis Carroll's Alice in Wonderland)
7572
qr = QrCode.EncodeText(
@@ -83,74 +80,14 @@ private static void DoVarietyDemo()
8380
SaveAsSvg(qr, "alice-wonderland-QR.svg", 10);
8481
}
8582

86-
87-
// Creates QR codes with manually specified segments for better compactness.
88-
private static void DoSegmentDemo()
83+
private static void DoEncodingDemo()
8984
{
90-
// Illustration "silver"
91-
const string silver0 = "THE SQUARE ROOT OF 2 IS 1.";
92-
const string silver1 = "41421356237309504880168872420969807856967187537694807317667973799";
93-
var qr = QrCode.EncodeText(silver0 + silver1, QrCode.Ecc.Low);
94-
SaveAsSvg(qr, "sqrt2-monolithic-QR.svg", 3);
95-
96-
var segs = new List<QrSegment>
97-
{
98-
QrSegment.MakeAlphanumeric(silver0),
99-
QrSegment.MakeNumeric(silver1)
100-
};
101-
qr = QrCode.EncodeSegments(segs, QrCode.Ecc.Low);
102-
SaveAsSvg(qr, "sqrt2-segmented-QR.svg", 3);
103-
104-
// Illustration "golden"
105-
const string golden0 = "Golden ratio φ = 1.";
106-
const string golden1 =
107-
"6180339887498948482045868343656381177203091798057628621354486227052604628189024497072072041893911374";
108-
const string golden2 = "......";
109-
qr = QrCode.EncodeText(golden0 + golden1 + golden2, QrCode.Ecc.Low);
110-
SaveAsSvg(qr, "phi-monolithic-QR.svg", 5);
111-
112-
segs = new List<QrSegment>
113-
{
114-
QrSegment.MakeBytes(Encoding.UTF8.GetBytes(golden0)),
115-
QrSegment.MakeNumeric(golden1),
116-
QrSegment.MakeAlphanumeric(golden2)
117-
};
118-
119-
qr = QrCode.EncodeSegments(segs, QrCode.Ecc.Low);
120-
SaveAsSvg(qr, "phi-segmented-QR.svg", 5);
121-
122-
// Illustration "Madoka": kanji, kana, Cyrillic, full-width Latin, Greek characters
123-
const string madoka = "「魔法少女まどか☆マギカ」って、 ИАИ desu κα?";
124-
qr = QrCode.EncodeText(madoka, QrCode.Ecc.Low);
125-
SaveAsSvg(qr, "madoka-utf8-QR.svg", 4);
126-
127-
segs = new List<QrSegment> { QrSegmentAdvanced.MakeKanji(madoka) };
128-
qr = QrCode.EncodeSegments(segs, QrCode.Ecc.Low);
129-
SaveAsSvg(qr, "madoka-kanji-QR.svg", 4);
85+
// ShiftJIS encoding so Kanji characters are compactly encoded (13 bits per character)
86+
var qr = QrCode.EncodeTextAdvanced("こんにちは", QrCode.Ecc.Medium, eci: ECI.ShiftJIS); // Japanese "Hello"
87+
SaveAsSvg(qr, "kanji-QR.svg", 4);
13088
}
13189

13290

133-
// Creates QR codes with the same size and contents but different mask patterns.
134-
private static void DoMaskDemo()
135-
{
136-
// Project Nayuki URL
137-
var segs = QrSegment.MakeSegments("https://www.nayuki.io/");
138-
var qr = QrCode.EncodeSegments(segs, QrCode.Ecc.High);
139-
SaveAsSvg(qr, "project-nayuki-automask-QR.svg", 6);
140-
qr = QrCode.EncodeSegments(segs, QrCode.Ecc.High, QrCode.MinVersion, QrCode.MaxVersion, 3); // Force mask 3
141-
SaveAsSvg(qr, "project-nayuki-mask3-QR.svg", 6);
142-
143-
// Chinese text as UTF-8
144-
segs = QrSegment.MakeSegments("維基百科(Wikipedia,聆聽i/ˌwɪkᵻˈpiːdi.ə/)是一個自由內容、公開編輯且多語言的網路百科全書協作計畫");
145-
qr = QrCode.EncodeSegments(segs, QrCode.Ecc.Medium, QrCode.MinVersion, QrCode.MaxVersion, 0); // Force mask 0
146-
SaveAsSvg(qr, "unicode-mask0-QR.svg");
147-
qr = QrCode.EncodeSegments(segs, QrCode.Ecc.Medium, QrCode.MinVersion, QrCode.MaxVersion, 1); // Force mask 1
148-
SaveAsSvg(qr, "unicode-mask1-QR.svg");
149-
qr = QrCode.EncodeSegments(segs, QrCode.Ecc.Medium, QrCode.MinVersion, QrCode.MaxVersion, 5); // Force mask 5
150-
SaveAsSvg(qr, "unicode-mask5-QR.svg");
151-
qr = QrCode.EncodeSegments(segs, QrCode.Ecc.Medium, QrCode.MinVersion, QrCode.MaxVersion, 7); // Force mask 7
152-
SaveAsSvg(qr, "unicode-mask7-QR.svg");
153-
}
15491

15592
private static void DoBinaryDemo()
15693
{

QrCodeGenerator/QrCodeGenerator.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ Advanced features:
6565
</ItemGroup>
6666

6767
<ItemGroup>
68-
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All"/>
68+
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="10.0.203" PrivateAssets="All" />
6969
</ItemGroup>
7070

7171
<Target Name="ValidateNuGetPackage" AfterTargets="Pack">

0 commit comments

Comments
 (0)