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

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码示例

生成二维码时需要一个QRCodeLogo对象来嵌入logo图片。 CreateQrCodeWithLogo方法也用于生成带有徽标的二维码。

: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")
VB   C#
带徽标的 QR 码

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

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

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

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

更改QR码颜色示例

除了能够在您的二维码中添加logo之外,IronBarcode还允许用户通过更改其颜色来进一步自定义他们的二维码。 With our 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")
VB   C#
带有自定义徽标和颜色的 QR 码

上面的代码片段扩展了之前关于创建带有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")
VB   C#
带注释的 QR 码

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

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

自定义注释和条形码值

上述四种方法都接受自定义字体作为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 团队。