gpt4 book ai didi

Swift - Visionkit 如何编辑按钮 "Keep Scan"和 "Retake"的颜色

转载 作者:行者123 更新时间:2023-12-05 07:04:53 24 4
gpt4 key购买 nike

我有一个问题。我已经实现了 visionkit 框架,以便在使用相机时检测文本。问题是按钮的颜色:“继续扫描”和“重新拍摄”是蓝色的。我想要黑色的。我该如何解决这个问题?我粘贴我的代码。提前致谢!

import UIKit
import Vision
import VisionKit

class ScanText: UIViewController, VNDocumentCameraViewControllerDelegate {

@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var TextScan: UITextView!
@IBOutlet weak var buttonStartShape: UIButton!
@IBOutlet weak var infoScattaUnaFoto: UILabel!
@IBOutlet weak var copyButtonShape: UIButton!

var textRecognitionRequest = VNRecognizeTextRequest(completionHandler: nil)
private let textRecognitionWorkQueue = DispatchQueue(label: "MyVisionScannerQueue", qos: .userInitiated, attributes: [], autoreleaseFrequency: .workItem)

var classView = ViewController()
var arrayText = String()

override func viewDidLoad() {
super.viewDidLoad()
imageView.layer.cornerRadius = 15
imageView.clipsToBounds = true

TextScan.layer.cornerRadius = 15
TextScan.clipsToBounds = true

copyButtonShape.layer.cornerRadius = 25
copyButtonShape.clipsToBounds = true

buttonStartShape.layer.cornerRadius = 25
buttonStartShape.clipsToBounds = true

TextScan.isEditable = true
setupVision()



}

@IBAction func TakePicture(_ sender: Any) {
let scannerViewController = VNDocumentCameraViewController()
scannerViewController.delegate = self
present(scannerViewController, animated: true)

}


private func setupVision() {

textRecognitionRequest = VNRecognizeTextRequest { (request, error) in
guard let observations = request.results as? [VNRecognizedTextObservation] else { return }

var detectedText = ""
for observation in observations {
guard let topCandidate = observation.topCandidates(2).first else { return }
print("text \(topCandidate.string) has confidence \(topCandidate.confidence)")


detectedText += topCandidate.string
detectedText += "\n"


}

DispatchQueue.main.async {
self.TextScan.isHidden = false
self.infoScattaUnaFoto.isHidden = true
self.copyButtonShape.isHidden = false
self.buttonStartShape.setTitle("Ripeti", for: .normal)
self.TextScan.text += detectedText
self.TextScan.flashScrollIndicators()

}
}

textRecognitionRequest.recognitionLevel = .accurate
}
private func processImage(_ image: UIImage) {
imageView.image = image
recognizeTextInImage(image)
}

private func recognizeTextInImage(_ image: UIImage) {
guard let cgImage = image.cgImage else { return }

TextScan.text = ""
textRecognitionWorkQueue.async {
let requestHandler = VNImageRequestHandler(cgImage: cgImage, options: [:])
do {
try requestHandler.perform([self.textRecognitionRequest])
} catch {
print(error)
}
}
}
func documentCameraViewController(_ controller: VNDocumentCameraViewController, didFinishWith scan: VNDocumentCameraScan) {
/* guard scan.pageCount >= 1 else {
controller.dismiss(animated: true)
return
}*/
for i in 0 ..< scan.pageCount {
let img = scan.imageOfPage(at: i)
processImage(img)

}

let originalImage = scan.imageOfPage(at: 0)
print(originalImage)
//let newImage = compressedImage(originalImage)
controller.dismiss(animated: true)


}

func documentCameraViewController(_ controller: VNDocumentCameraViewController, didFailWithError error: Error) {
print(error)
controller.dismiss(animated: true)
}

func documentCameraViewControllerDidCancel(_ controller: VNDocumentCameraViewController) {
controller.dismiss(animated: true)
}

func compressedImage(_ originalImage: UIImage) -> UIImage {
guard let imageData = originalImage.jpegData(compressionQuality: 1),
let reloadedImage = UIImage(data: imageData) else {
return originalImage
}
return reloadedImage
}
//MARK: By tapping on this button, I pass all the data.

@IBAction func CopyText(_ sender: Any) {
let vc = (storyboard?.instantiateViewController(identifier: "SpeakDetail") as? ViewController)!

vc.textscannerized = TextScan.text

self.navigationController?.pushViewController(vc, animated: true)

}

}

This is the image

最佳答案

你可以尝试这样的事情:

scannerViewController.view.tintColor = .red

关于Swift - Visionkit 如何编辑按钮 "Keep Scan"和 "Retake"的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62853928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com