Swift 二维码库

使用 Swift 生成二维码

Swift 通过 CoreImage 的 CIQRCodeGenerator 滤镜提供内置二维码生成功能。iOS 和 macOS 应用无需第三方依赖。

设置

CoreImage 包含在 iOS 和 macOS SDK 中。无需额外安装。

Built-in
import CoreImage // No installation needed — included in iOS & macOS SDK

使用 CoreImage 生成二维码

使用 Swift 内置 CIQRCodeGenerator 的代码示例。

Basic QR Code with CoreImage
import CoreImage
import UIKit

func generateQRCode(from string: String) -> UIImage? {
    let data = string.data(using: .ascii)
    guard let filter = CIFilter(name: "CIQRCodeGenerator") else { return nil }

    filter.setValue(data, forKey: "inputMessage")
    filter.setValue("Q", forKey: "inputCorrectionLevel")

    guard let ciImage = filter.outputImage else { return nil }

    // Scale up for crisp rendering
    let transform = CGAffineTransform(scaleX: 10, y: 10)
    let scaledImage = ciImage.transformed(by: transform)

    return UIImage(ciImage: scaledImage)
}

let qrImage = generateQRCode(from: "https://qrcode.fun")
Colored QR Code
func generateColoredQRCode(from string: String,
                              foreground: UIColor = .black,
                              background: UIColor = .white) -> UIImage? {
    let data = string.data(using: .ascii)
    guard let qrFilter = CIFilter(name: "CIQRCodeGenerator"),
          let colorFilter = CIFilter(name: "CIFalseColor") else { return nil }

    qrFilter.setValue(data, forKey: "inputMessage")
    qrFilter.setValue("H", forKey: "inputCorrectionLevel")

    colorFilter.setValue(qrFilter.outputImage, forKey: "inputImage")
    colorFilter.setValue(CIColor(color: foreground), forKey: "inputColor0")
    colorFilter.setValue(CIColor(color: background), forKey: "inputColor1")

    guard let output = colorFilter.outputImage else { return nil }
    let transform = CGAffineTransform(scaleX: 10, y: 10)
    return UIImage(ciImage: output.transformed(by: transform))
}
QRCode.fun API

通过 API 在 Swift 中生成二维码

使用 URLSession 从 Swift 调用 QRCode.fun API,生成带有自定义颜色和徽标的样式化二维码。

Swift API 集成
import Foundation

func generateQRCodeViaAPI(data: String) async throws -> Data {
    let url = URL(string: "https://qrcode.fun/api/generate-qr-styled")!
    var request = URLRequest(url: url)
    request.httpMethod = "POST"
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")

    let payload: [String: Any] = [
        "data": data,
        "width": 300,
        "height": 300,
        "type": "png",
        "margin": 10,
        "dotsOptions": ["color": "#1A2B3C", "type": "rounded"],
        "cornersSquareOptions": ["color": "#8564C3", "type": "extra-rounded"],
        "backgroundOptions": ["color": "#FFFFFF"]
    ]
    request.httpBody = try JSONSerialization.data(withJSONObject: payload)

    let (responseData, _) = try await URLSession.shared.data(for: request)
    return responseData // Parse JSON to get base64 image
}

// Usage
let imageData = try await generateQRCodeViaAPI(data: "https://qrcode.fun")

实时二维码预览

立即尝试使用 Swift 生成二维码。

二维码预览

CoreImage vs API

比较直接使用 CoreImage 与 QRCode.fun API。

功能CoreImageQRCode.fun API
设置复杂度内置,无需安装通过 URLSession 发送 HTTP 请求
自定义基础(通过 CIFilter 着色)完整样式:颜色、形状、徽标
离线支持需要互联网
维护iOS/macOS SDK 的一部分始终保持最新
输出格式CIImage → UIImage/NSImagePNG, SVG

Swift 二维码使用场景

Swift 应用中二维码的常见场景。

iOS 应用

在 iPhone 和 iPad 应用中生成二维码,用于分享链接、联系人、Wi-Fi 凭据和应用深度链接。

SwiftUI 视图

创建可复用的 SwiftUI 组件,渲染带有自定义样式和动画的二维码。

macOS 应用

构建 macOS 工具,为名片、标签和文档管理生成二维码。

Apple Watch

在 Apple Watch 上显示二维码,快速访问登机牌、票据和会员卡。

常见问题

关于使用 Swift 生成二维码的常见问题。

不需要。CoreImage 的 CIQRCodeGenerator 滤镜内置于 iOS 和 macOS 中。无需任何依赖即可生成基本二维码。

开始使用 Swift 生成二维码

使用我们的免费生成器或将 API 集成到您的 iOS 和 macOS 应用中。