相关疑难解决方法(0)

从 UIImage 转换为 SwiftUI Image 会产生相同大小的空白图像

我正在尝试使用init(uiImage:)初始值设定项将UIImage转换为SwiftUI Image。我的 UIImage 本身是从 CIQRCodeGenerator CIFilter 生成的 CIImage 创建的。我在 Xcode 11.1 GM 种子 1 的 Playground 上运行我的代码。这是我的全部代码:

import SwiftUI
import UIKit

func qrCodeImage(for string: String) -> Image? {
  let data = string.data(using: String.Encoding.utf8)
  guard let qrFilter = CIFilter(name: "CIQRCodeGenerator") else { return nil }
  qrFilter.setValue(data, forKey: "inputMessage")

  guard let ciImage = qrFilter.outputImage else { return nil }
  let uiImage = UIImage(ciImage: ciImage)
  let image = Image(uiImage: uiImage)

  return image
}

let image = qrCodeImage(for: "fdsa") …
Run Code Online (Sandbox Code Playgroud)

uikit swiftui

8
推荐指数
2
解决办法
4268
查看次数

使用 SwiftUI 生成二维码显示空图片

我试图在我的应用程序中生成一个二维码。问题是每当我做图片时,图片只是一个空方块。我将代码简化为基础,以尝试展示我的问题。

struct ContentView: View {
    @State var image: Image = Image(systemName: "circle.fill")

    var body: some View {
        VStack {
            image
                .resizable()
                .aspectRatio(contentMode: .fill)
                .frame(width: 200, height: 200)
                .background(Color.green)

        }.onAppear {
            let myString = "Hello There"
            let data = myString.data(using: String.Encoding.ascii)
            guard let qrFilter = CIFilter(name: "CIQRCodeGenerator") else { return }
            qrFilter.setValue(data, forKey: "inputMessage")
            guard let qrImage = qrFilter.outputImage else { return }
            let transform = CGAffineTransform(scaleX: 10, y: 10)
            let scaledQrImage = qrImage.transformed(by: transform)
            self.image = Image(uiImage: UIImage(ciImage: scaledQrImage))
        } …
Run Code Online (Sandbox Code Playgroud)

qr-code cifilter swiftui

4
推荐指数
1
解决办法
1129
查看次数

标签 统计

swiftui ×2

cifilter ×1

qr-code ×1

uikit ×1