问题标签 [pencilkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
44 浏览

ios - “图纸计数不匹配!” PencilKit canvasViewDidEndUsingTool 委托中的错误

我正在尝试使用 PencilKit 组合一个简单的绘图应用程序。但是,当我在画布上放大时,我希望笔触更细(在屏幕上视觉上与放大之前的尺寸相同,但一旦我完全放大,结果会更细)。此外,我希望笔画始终保持一致,这意味着不要根据笔画的速度/时间、角度等改变其大小。一个简单的涂鸦板。我已经有一个完整的绘图画布,但我无法满足这些额外的要求。这是我尝试过的:

符合PKCanvasViewDelegate并执行canvasViewDidEndUsingTool。在那里,我添加了我的代码来自定义笔画,例如这个片段将所有内容转换为具有统一的 5x5 笔画:

当我在画布上完成描边时,会调用此委托。但是,在canvasView.drawing = newDrawing最后一行调用时,我在控制台上得到了这个日志:

我刚刚画的笔画消失了。

我不知道这有什么问题,因为我的代码片段只是简单地遍历现有笔画,修改它们,然后在绘图上再次设置它们。我没有找到与此相关的文档,谷歌为此错误/警告消息获得了 0 个结果。

感谢任何帮助。

0 投票
0 回答
179 浏览

ios - 如何在白色背景的 Swift 中保存 PKDrawing

我正在使用PencilKit框架来捕获用户的绘图并保存它。

我想保存一个白色背景的用户输入图。图像应该是这样的,我的画布背景是白色的。

在此处输入图像描述

我使用UIImageapidrawing.image(from: bounds, scale: 1.0)并保存它。在保存图像时,我得到以下信息

在此处输入图像描述

似乎背景已被删除,尽管我希望保留它。我想稍后将图像转换为白色 = 255 和黑色 = 0 强度的像素值。

我如何用 Swift 做到这一点?

谢谢大家的指导和帮助。

0 投票
1 回答
272 浏览

ios - iOS PencilKit 未在 PKCanvasView 上绘图

在 iOS 模拟器中,我按照基本步骤将 PencilKit 包含到我的视图控制器中。我在 UI 中获得了工具包,但无法绘制。不知道我在这里缺少什么。分享我尝试过的代码。

请让我知道我在这里缺少什么..

0 投票
0 回答
100 浏览

swift - 编辑后保存 PDF 文档 - Swift、PDFKIT、Pencilkit

我已经实现了一个基于 PDFKit 和 Pencilkit 的应用程序。它在 PDF 文档中创建一些空白页面,然后让用户在页面之间导航。并让用户尝试分别编辑每个页面。我尝试使用这行代码在编辑后保存页面

我的问题就在这行代码中

我需要这行代码,因为实现是一种用户可以单独编辑每个页面的实现,我的意思是,例如当用户决定在第 4 页时编辑第 4 页时,用户将在 Pencilkit 的帮助下编辑页面并单击完成按钮。因此,我正在使用此代码将已编辑的页面保存在我获得的 url 上。但是这种节省会带来一些问题。像pencilkit的文本框添加的文本将被重新格式化,例如字体大小将非常小。

如果您能就它的实施方式和这个问题给我任何建议,我将不胜感激。谢谢你 。

0 投票
2 回答
248 浏览

swift - 将 UIBezierPath 转换为 PKStrokePath swift

有没有办法将 UIBezierPath 转换为 PKStrokePath ?

例如,我将这些路径作为 UIBezierPath 我如何将其转换为 PKStrokePath 以在 PKDrawing 中使用它?

0 投票
0 回答
101 浏览

ios - 无法在 SwiftUI 中使用 PencilKit 在背景图像上绘图

我已将 PencilKit 集成到我的 SwftUI Photo 应用程序中,但我无法在所附屏幕截图中看到的图像上绘图。背景图像称为 selectedImage 并在 CanvasView 结构内触发

在此处输入图像描述

我在打开此屏幕的按钮中调用了 showPencilPanel 和 CanvasIsVisible:

当 showPencilPanel 可见时,它显示:

当 CanvasIsVisible 它显示:

0 投票
0 回答
106 浏览

ios - PencilKit 绘图有时会在黑暗模式下变为黑色

我有一个使用 PencilKit 的应用程序。我注意到,有时当我处于深色模式并使用白色时,当我完成绘制并将笔画渲染为图像进行绘制时,白线会变为黑色。

我在用:

从绘图中创建 UIImage 但它是随机的,有时似乎会导致用户界面样式错误。图像中的所有颜色都处于错误的用户界面样式特征(但白色是最明显的错误)(即:我处于深色模式但生成的 UIImage 有时认为我处于浅色模式)

这是 iOS 中的错误(在原始 iPad Pro 上运行 14.7.1)还是我做错了什么?我从未见过这种情况在灯光模式下发生(黑线永远不会变成白色)。

提前致谢。


这似乎确实是一个 iOS 错误。它存在于 iOS 14 中,但似乎已在 iOS 15 中修复。

0 投票
1 回答
44 浏览

swift - Apple Pencil 笔的颜色比给 PKInkingTool 的颜色深

我有一个最低限度的苹果铅笔设置:一个PKCanvasView名为“drawingView”的给定墨迹工具如下(设置起始笔颜色):

但是,当我使用笔时,它非常暗(我已经尝试了几种颜色.white)。这是其他人正在经历的 PencilKit 内部故障,还是我错过了什么?

谢谢

0 投票
1 回答
228 浏览

ios - 将 PKDrawing 对象存储到 Core Data

我正在尝试将 Apple Pencil 支持添加到我的思维导图应用程序中。我已经在我的应用程序中使用 Core Data 来进行数据持久性,这一切都很好,没有任何错误。

我的 Apple Pencil 功能正常,但存储 Apple Pencil 数据时遇到问题。

我试图将 PKDrawing 对象添加到我的 MindMap 数据模型中,但我不断收到编译时错误“在范围内找不到类型 'PKDrawing'”

就我而言,我可以将 PKDrawing 对象存储到核心数据中,然后在应用程序加载时将其取回。但我显然没有做正确的事情。

在此处输入图像描述在此处输入图像描述

非常感谢任何帮助。

谢谢

更新:

所以我用过:

然后更新了我的模型数据和 savedContext 似乎一切正常。问题是当我尝试在打开应用程序时初始化数据时。我有:

这给了我错误:

无法将“Foundation.Data”(0x1f3851a98)类型的值转换为“Swift.Decoder”(0x1ee5381a8)。2021-09-24 06:22:58.912173+0100 MindMappingApp [1137:612856] 无法将“Foundation.Data”(0x1f3851a98)类型的值转换为“Swift.Decoder”(0x1ee5381a8)。

我试过了:

尝试loadedDrawing = PKDrawing.init(来自:数据为!解码器)

作为:

尝试loadedDrawing = PKDrawing.init(来自:数据)

但我不断得到:

参数类型“数据”不符合预期类型“解码器”

有任何想法吗?提前致谢 :)

0 投票
1 回答
188 浏览

swift - 查找两个 UIImage 之间的相似度百分比

我正在尝试构建一个应用程序以查找两者之间的百分比相似性UIImage,该应用程序捕获用户笔划铅笔并将其转换为UIImage然后逐个像素地找到与存储在应用程序上的图像的相似性。

我找到了发现差异的代码(不是相似性),如果我有两个图像为 JPEG,那是有效的,但在我的情况下,当我单击按钮时会出现错误

convertoand:]: 无法识别的选择器发送到实例 0x10900f2d0"

该按钮将捕获笔画铅笔,然后在其中进行比较,然后将func compareImages(image1: imageStroke, image2: imageOnApp)其打印在标签上:

查找差异代码:

我试图更改代码以找到相似之处,但我失败了