PencilKit에 그려진 그림에서 UII Mage 가져오기
개요
이번 환경
항목 만들기
Xcode에서 템플릿에서 iOS+Single ViewApp을 선택합니다.
다음 옵션을 선택합니다.
프로젝트를 만들면 App Delegate.swift, SceneDelegate.swift, ViewController.Swift 소스 코드가 준비되어 있습니다.
소스 코드
ViewController.다음 코드로 swift를 대체합니다.
import UIKit
import PencilKit // PencilKit を使う
class ViewController: UIViewController {
var canvasView: PKCanvasView? // 描画キャンバス
var imageView: UIImageView? // UIImage表示領域
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
// 横幅の1/4をビュー配置の基本サイズとする
let unit = view.frame.width / 4
// PKCanvasView: 描画キャンバス
let canvasView = PKCanvasView(frame: CGRect(x: 0, y: 0, width: unit * 2, height: unit * 2))
canvasView.tool = PKInkingTool(.pen, color: .black, width: 30)
view.addSubview(canvasView)
self.canvasView = canvasView
// PKToolPicker: ドラッグして移動できるツールパレット (ペンや色などを選択できるツール)
if let window = UIApplication.shared.windows.first {
if let toolPicker = PKToolPicker.shared(for: window) {
toolPicker.addObserver(canvasView)
toolPicker.setVisible(true, forFirstResponder: canvasView)
canvasView.becomeFirstResponder()
}
}
// UIImage表示ボタン
let button = UIButton(frame: CGRect(x: unit * 2, y: 0, width: unit, height: unit))
button.setTitle("UIImage表示ボタン", for: .normal)
button.setTitleColor(UIColor.green, for: .normal)
button.setTitle("UIImage表示ボタン", for: .highlighted)
button.setTitleColor(UIColor.brown, for: .highlighted)
button.backgroundColor = UIColor.blue
button.addTarget(self, action: #selector(ViewController.onClickButton(sender:)), for: .touchUpInside)
view.addSubview(button)
// UIImage表示領域
let imageView = UIImageView(frame: CGRect(x: unit * 2, y: unit, width: unit, height: unit))
view.addSubview(imageView)
self.imageView = imageView
}
// UIImage表示ボタンがクリックされたときに呼び出される
@objc internal func onClickButton(sender: UIButton) {
let unit = self.view.frame.width / 4
// PKDrawing.image で UIImage を取得する
// UIImage として取得したい PKCanvasView の範囲を from に指定
// 画像の拡大率を scale に指定
let image = canvasView?.drawing.image(from: CGRect(x: 0, y: 0, width: unit * 2, height: unit * 2), scale: 1.0)
DispatchQueue.main.async {
self.imageView?.image = image
}
}
}
실제 실행 결과
실제 기기(아이패드 Pro11-inch+iPadOS13.1)에 설치하고 실행합니다.
오른쪽에 있는 "UIIMage 표시 버튼"을 누르면 왼쪽에 그려진 그림의 UIIMage가 오른쪽 아래에 표시됩니다.
참고 자료
Reference
이 문제에 관하여(PencilKit에 그려진 그림에서 UII Mage 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/niwasawa/items/e0e99fb9e509ede1382f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)