gpt4 book ai didi

ios - 保存绘图并将其快速发送到服务器

转载 作者:搜寻专家 更新时间:2023-11-01 06:54:01 26 4
gpt4 key购买 nike

我想知道如何将我的应用程序的绘图像图像一样保存在手机上,然后将其发送到服务器。

这是我的代码。

我在这门课上画画。

import Foundation
import UIKit

class Sign: UIViewController
{
@IBOutlet weak var btnSave: UIButton!
@IBOutlet weak var btnClear: UIButton!

let canvas = Canvas()

fileprivate func setupLayout() {
let stackView = UIStackView(arrangedSubviews: [btnClear,btnSave])

view.addSubview(stackView)

stackView.distribution = .fillEqually
stackView.translatesAutoresizingMaskIntoConstraints = false
stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
stackView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
}

override func viewDidLoad() {
view.addSubview(canvas)
canvas.backgroundColor = .white
canvas.frame = view.frame

setupLayout()


}
@IBAction func ClearCanvas(_ sender: Any) {
canvas.clear()
}

@IBAction func SaveCanvas(_ sender: Any) {

}
}

我也有这个 Canvas 类,其中我有按钮的功能。只是想知道如何处理或将我的绘图 View 转换为图像并保存,然后将其发送到服务器。

import Foundation
import UIKit

class Canvas: UIView {

func clear(){
lines.removeAll()
setNeedsDisplay()
}
override func draw(_ rect: CGRect) {

guard let context = UIGraphicsGetCurrentContext() else {return}

context.setStrokeColor(UIColor.black.cgColor)
context.setLineWidth(5)
context.setLineCap(.butt)

lines.forEach { (line) in
for (i , p) in line.enumerated(){
if i == 0 {
context.move(to: p)
} else {
context.addLine(to: p)
}
}
}


context.strokePath()

}

var lines = [[CGPoint]]()

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
lines.append([CGPoint]())
}

override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
guard let point = touches.first?.location(in: nil) else {return}

guard var lastline = lines.popLast() else { return }
lastline.append(point)
lines.append(lastline)

setNeedsDisplay()
}
}

最佳答案

您可以在您的类 Canvas 中添加一个函数来绘制图像并将图像数据更新到您的服务器。

func screenShot() -> UIImage? {
//Create the UIImage
UIGraphicsBeginImageContext(self.frame.size)
self.layer.renderInContext(UIGraphicsGetCurrentContext())
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}

关于ios - 保存绘图并将其快速发送到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55011052/

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