如何为 QR 代码定制和添加徽标

Hairil related to 如何为 QR 代码定制和添加徽标
海瑞尔 哈西米 本 奥马尔
2023年三月29日
更新 2024年十二月10日
分享:
This article was translated from English: Does it need improvement?
Translated
View the article in English

二维码因其更高的数据容量和扫描便利性而比传统条形码更受欢迎。 他们在市场营销中尤其受到重视,因为他们的可定制性,包括添加标志、更改颜色和整合其他品牌元素的选项。

为了满足这一需求,IronBarcode为定制QR码提供了一套功能。 用户可以创建带有logo的二维码,更改配色方案,并添加注释。 这些功能由IronDrawing提供支持,这是一个免费且开源的库。

开始使用 IronBarcode

立即在您的项目中开始使用IronBarcode,并享受免费试用。

第一步:
green arrow pointer




创建带有logo的QR码示例

在生成 QR 代码时,需要一个QRCodeLogo对象来嵌入徽标图像。 CreateQrCodeWithLogo 方法也用于生成带有徽标的 QR 码。

:path=/static-assets/barcode/content-code-examples/how-to/customize-qr-code-style-logo.cs
using IronBarCode;
using IronSoftware.Drawing;

AnyBitmap qrlogo = AnyBitmap.FromFile("ironbarcode_top.webp");

QRCodeLogo logo = new QRCodeLogo(qrlogo, 0, 0, 20f);

GeneratedBarcode QrCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", logo, 250);

QrCodeWithLogo.SaveAsPng("QrCodeWLogo2.png");
Imports IronBarCode
Imports IronSoftware.Drawing

Private qrlogo As AnyBitmap = AnyBitmap.FromFile("ironbarcode_top.webp")

Private logo As New QRCodeLogo(qrlogo, 0, 0, 20F)

Private QrCodeWithLogo As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", logo, 250)

QrCodeWithLogo.SaveAsPng("QrCodeWLogo2.png")
$vbLabelText   $csharpLabel
带有徽标的二维码

让我们检查上述代码生成的输出二维码。 我们可以看到,二维码中央带有一个带圆角的logo。

要自定义徽标,您需要在创建新的QRCodeLogo对象时填写某些字段。 以下是所需字段的解释:

  • 导入图像:您可以通过多种方式导入图像,例如从AnyBitmapStreamByte Array、相对filepathURI
  • 图像尺寸:以像素为单位指定logo图像的期望宽度和高度。 如果图像过大,无法读取QR码,将会抛出一个异常。 使用值0来自动确定最大可行尺寸。
  • 图像角落:设置徽标图像圆角的半径。 使用默认值0表示方角。

    最后,要导出生成的QR码,只需调用保存方法。 您有多种导出选项,包括图像文件HTMLPDF

更改QR码颜色示例

除了能够在您的二维码中添加logo之外,IronBarcode还允许用户通过更改其颜色来进一步自定义他们的二维码。 使用我们的IronDrawing库,用户可以轻松地使用RGB值或十六进制颜色代码定义自己的颜色,并将其应用于二维码。 让我们看一下演示此功能的代码片段以及运行此代码后得到的结果 QR 码。

:path=/static-assets/barcode/content-code-examples/how-to/customize-qr-code-style-logo-color.cs
using IronBarCode;
using IronSoftware.Drawing;

AnyBitmap qrlogo = AnyBitmap.FromFile("ironbarcode_top.webp");

QRCodeLogo logo = new QRCodeLogo(qrlogo, 0, 0, 20f);

IronSoftware.Drawing.Color ColorFromRgb = new IronSoftware.Drawing.Color(51, 51, 153);

GeneratedBarcode QrCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", logo, 250);
GeneratedBarcode QrCodeWithLogoAndColor = QrCodeWithLogo.ChangeBarCodeColor(ColorFromRgb);
QrCodeWithLogoAndColor.SaveAsPng("ColorQrCodeWithLogo.png");
Imports IronBarCode
Imports IronSoftware.Drawing

Private qrlogo As AnyBitmap = AnyBitmap.FromFile("ironbarcode_top.webp")

Private logo As New QRCodeLogo(qrlogo, 0, 0, 20F)

Private ColorFromRgb As New IronSoftware.Drawing.Color(51, 51, 153)

Private QrCodeWithLogo As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", logo, 250)
Private QrCodeWithLogoAndColor As GeneratedBarcode = QrCodeWithLogo.ChangeBarCodeColor(ColorFromRgb)
QrCodeWithLogoAndColor.SaveAsPng("ColorQrCodeWithLogo.png")
$vbLabelText   $csharpLabel
自定义标志和颜色的二维码

上面的代码片段扩展了之前关于创建带有logo的QR码的示例。 它演示了如何使用ChangeBarCodeColor方法更改QR码颜色,该方法将IronSoftware.Drawing.Color对象作为输入。 您可以使用 RGB 值、十六进制代码或预定义的枚举来创建此对象。 请访问我们的“创建颜色”代码示例以了解更多信息。

添加QR码注释示例

自定义或设置 QR 码样式的另一个重要方面是在 QR 码图像中添加注释。 这些注释可以是条形码本身的值,也可以是用于促销或营销的自定义文本。

现在,让我们检查以下代码段中这些方法的实现以及所生成的二维码图像。

:path=/static-assets/barcode/content-code-examples/how-to/customize-qr-code-style-logo-color-annotation.cs
using IronBarCode;
using IronSoftware.Drawing;

AnyBitmap qrlogo = AnyBitmap.FromFile("ironbarcode_top.webp");

QRCodeLogo logo = new QRCodeLogo(qrlogo, 0, 0, 20f);

Color colorForBarcode = new Color(51, 51, 153); // color from RGB
Color annotationAboveBarcodeColor = new Color("#176feb");  // color from Hex
Font annotationAboveBarcodeFont = new Font("Candara", FontStyle.Bold, 15);
Color barcodeValueBelowBarcodeColor = new Color("#6e53bb");
Font barcodeValueBelowBarcodeFont = new Font("Cambria", FontStyle.Regular, 15);

GeneratedBarcode qrCodeWithLogo = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", logo, 250);
GeneratedBarcode qrCodeWithLogoAndColor = qrCodeWithLogo.ChangeBarCodeColor(colorForBarcode);
GeneratedBarcode qrCodeWithAnnotation = qrCodeWithLogoAndColor.AddAnnotationTextAboveBarcode("IronBarcodeRocks!", annotationAboveBarcodeFont, annotationAboveBarcodeColor, 2).AddBarcodeValueTextBelowBarcode(barcodeValueBelowBarcodeFont, barcodeValueBelowBarcodeColor, 2);
qrCodeWithAnnotation.SaveAsPng("QRCodeWithAnnotation.png");
Imports IronBarCode
Imports IronSoftware.Drawing

Private qrlogo As AnyBitmap = AnyBitmap.FromFile("ironbarcode_top.webp")

Private logo As New QRCodeLogo(qrlogo, 0, 0, 20F)

Private colorForBarcode As New Color(51, 51, 153) ' color from RGB
Private annotationAboveBarcodeColor As New Color("#176feb") ' color from Hex
Private annotationAboveBarcodeFont As New Font("Candara", FontStyle.Bold, 15)
Private barcodeValueBelowBarcodeColor As New Color("#6e53bb")
Private barcodeValueBelowBarcodeFont As New Font("Cambria", FontStyle.Regular, 15)

Private qrCodeWithLogo As GeneratedBarcode = QRCodeWriter.CreateQrCodeWithLogo("https://ironsoftware.com/csharp/barcode/", logo, 250)
Private qrCodeWithLogoAndColor As GeneratedBarcode = qrCodeWithLogo.ChangeBarCodeColor(colorForBarcode)
Private qrCodeWithAnnotation As GeneratedBarcode = qrCodeWithLogoAndColor.AddAnnotationTextAboveBarcode("IronBarcodeRocks!", annotationAboveBarcodeFont, annotationAboveBarcodeColor, 2).AddBarcodeValueTextBelowBarcode(barcodeValueBelowBarcodeFont, barcodeValueBelowBarcodeColor, 2)
qrCodeWithAnnotation.SaveAsPng("QRCodeWithAnnotation.png")
$vbLabelText   $csharpLabel
带注释的QR码

IronBarcode 提供方法来设置注释的位置(在二维码上方或下方),以及其字体和颜色。 以下是此功能的可用方法:

  • AddAnnotationTextAboveBarcode:在二维码上方添加注释文本。
  • AddAnnotationTextBelowBarcode:在二维码下方添加注释文本。
  • AddBarcodeValueTextAboveBarcode:将条码值文本添加在二维码上方
  • AddBarcodeValueTextBelowBarcode:将条形码的值文本添加在QR码的下方

自定义注释和条形码值

上述四种方法均接受自定义字体作为IronSoftware.Drawing.Font对象,颜色作为IronSoftware.Drawing.Color对象,以及一个整数来指定文本上下间距(以像素为单位)。 请注意,这些参数是可选的; 如果未指定,默认将使用默认字体、颜色和间距。

简而言之,IronBarcode 是创建和自定义 QR 码的理想工具。 除了用于定制的直接方法之外,IronBarcode还使用了我们自己的IronDrawing作为辅助库,用于处理与图像相关的任何内容,这被认为比依赖其他外部库更稳定。

Hairil related to 自定义注释和条形码值
海瑞尔 哈西米 本 奥马尔
软件工程师
像所有优秀的工程师一样,Hairil 是一个热衷学习的人。他正在精进自己的 C#、Python 和 Java 知识,并利用这些知识为 Iron Software 团队成员增添价值。Hairil 毕业于马来西亚的马来西亚工艺大学(Universiti Teknologi MARA),获得了化学与工艺工程学士学位,然后加入了 Iron Software 团队。