diff --git a/QRCoderTests/QRCodeRendererTests.cs b/QRCoderTests/QRCodeRendererTests.cs
index c750f924..0a95ca11 100644
--- a/QRCoderTests/QRCodeRendererTests.cs
+++ b/QRCoderTests/QRCodeRendererTests.cs
@@ -37,19 +37,12 @@ public void can_create_standard_qrcode_graphic()
[Fact]
[Category("QRRenderer/QRCode")]
public void can_create_qrcode_with_transparent_logo_graphic()
- {
- //Create dummy logo
- var logo = new Bitmap(32, 32);
- var gfx = Graphics.FromImage(logo);
- gfx.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
- gfx.FillRectangle(Brushes.Transparent, new Rectangle(0, 0, 32, 32));
- gfx.FillEllipse(Brushes.Red, new Rectangle(0, 0, 32, 32));
- gfx.Save();
-
+ {
//Create QR code
var gen = new QRCodeGenerator();
var data = gen.CreateQrCode("This is a quick test! 123#?", QRCodeGenerator.ECCLevel.H);
- var bmp = new QRCode(data).GetGraphic(10, Color.Black, Color.Transparent, icon: logo);
+ var bmp = new QRCode(data).GetGraphic(10, Color.Black, Color.Transparent, icon: Resources.noun_software_engineer_2909346);
+ //Used logo is licensed under public domain. Ref.: https://thenounproject.com/Iconathon1/collection/redefining-women/?i=2909346
var ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
@@ -59,25 +52,18 @@ public void can_create_qrcode_with_transparent_logo_graphic()
var result = BitConverter.ToString(hash).Replace("-", "").ToLower();
ms.Dispose();
- result.ShouldBe("8f03d2c3fc5998cebb46658c3e6293b1");
+ result.ShouldBe("ee65d96c3013f6032b561cc768251eef");
}
[Fact]
[Category("QRRenderer/QRCode")]
public void can_create_qrcode_with_non_transparent_logo_graphic()
{
- //Create dummy logo
- var logo = new Bitmap(32, 32);
- var gfx = Graphics.FromImage(logo);
- gfx.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
- gfx.FillRectangle(Brushes.White, new Rectangle(0, 0, 32, 32));
- gfx.FillEllipse(Brushes.Red, new Rectangle(0, 0, 32, 32));
- gfx.Save();
-
//Create QR code
var gen = new QRCodeGenerator();
var data = gen.CreateQrCode("This is a quick test! 123#?", QRCodeGenerator.ECCLevel.H);
- var bmp = new QRCode(data).GetGraphic(10, Color.Black, Color.White, icon: logo);
+ var bmp = new QRCode(data).GetGraphic(10, Color.Black, Color.White, icon: Resources.noun_software_engineer_2909346);
+ //Used logo is licensed under public domain. Ref.: https://thenounproject.com/Iconathon1/collection/redefining-women/?i=2909346
var ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
@@ -87,7 +73,7 @@ public void can_create_qrcode_with_non_transparent_logo_graphic()
var result = BitConverter.ToString(hash).Replace("-", "").ToLower();
ms.Dispose();
- result.ShouldBe("c2aae3658c7fa20cb5d22948d859c614");
+ result.ShouldBe("1d718f06f904af4a46748f02af2d4eec");
}
#endif
}
diff --git a/QRCoderTests/QRCoderTests.csproj b/QRCoderTests/QRCoderTests.csproj
index a18b79f9..4b3b13d7 100644
--- a/QRCoderTests/QRCoderTests.csproj
+++ b/QRCoderTests/QRCoderTests.csproj
@@ -10,13 +10,13 @@
-
+
-
+
@@ -26,6 +26,21 @@
+
+
+ True
+ True
+ Resources.resx
+
+
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+
$(MSBuildProgramFiles32)\Reference Assemblies\Microsoft\Framework\.NETFramework\v3.5\Profile\Client
diff --git a/QRCoderTests/Resources.Designer.cs b/QRCoderTests/Resources.Designer.cs
new file mode 100644
index 00000000..ca6ff43f
--- /dev/null
+++ b/QRCoderTests/Resources.Designer.cs
@@ -0,0 +1,77 @@
+//------------------------------------------------------------------------------
+//
+// Dieser Code wurde von einem Tool generiert.
+// Laufzeitversion:4.0.30319.42000
+//
+// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
+// der Code erneut generiert wird.
+//
+//------------------------------------------------------------------------------
+
+namespace QRCoderTests {
+ using System;
+
+
+
+ ///
+ /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
+ ///
+ // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
+ // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
+ // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
+ // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+#if !NETCOREAPP1_1
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+
+ ///
+ /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("QRCoderTests.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
+ /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap noun_software_engineer_2909346 {
+ get {
+ object obj = ResourceManager.GetObject("noun_software_engineer_2909346", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+#endif
+ }
+}
diff --git a/QRCoderTests/Resources.resx b/QRCoderTests/Resources.resx
new file mode 100644
index 00000000..ce057c3a
--- /dev/null
+++ b/QRCoderTests/Resources.resx
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ assets\noun_software engineer_2909346.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
\ No newline at end of file
diff --git a/QRCoderTests/assets/noun_software engineer_2909346.png b/QRCoderTests/assets/noun_software engineer_2909346.png
new file mode 100644
index 00000000..bc100986
Binary files /dev/null and b/QRCoderTests/assets/noun_software engineer_2909346.png differ