问题标签 [uigraphicsimagerenderer]

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 投票
3 回答
9390 浏览

ios - iOS“当前图形上下文” - 那是什么

当我绘制线条和形状等时,我会在 iOS 中获得“当前图形上下文”。

究竟什么是“当前图形上下文” - 我正在寻找 30,000 英尺的描述。

现在我只是复制和粘贴 UI 代码,不确定它在做什么。

0 投票
3 回答
4790 浏览

ios - 什么是图形上下文?(iOS)

究竟什么是图形上下文?当使用 Core Graphic 绘图时,我们会获得对上下文的引用。当我查看文档时,它似乎是一个对象,无论是用于打印、设备、pdf 等等,都要注意正确的绘图。

谁能帮我理解上下文到底是什么?我尝试阅读文档,但我不明白。它是一个包含有关系统或其他东西的信息(元数据)的对象吗?

提前致谢

0 投票
1 回答
418 浏览

swift - 如何制作具有透明背景的椭圆/圆形 UIImage?

这是我正在使用的代码

这是我得到的图像

背景颜色为黑色。我怎样才能使背景透明?我尝试了不同的方法,但还没有成功。

0 投票
0 回答
472 浏览

swift - 如何防止 UIView drawHierarchy 阻止或冻结正在进行的动画

我的应用程序使用以下代码将 UIView 呈现为 UIImage:

在调用该代码之前,我在屏幕上放置了一个加载指示器,该指示器应在图像渲染正在进行时显示。该指示器是通过 UIImageView 生成的动画序列。加载动画开始正常,但是一旦图像渲染开始,主线程被阻塞并且加载动画冻结。它挂起直到渲染完成,然后恢复。我相信 UIImageView 操作和渲染都必须在主线程上进行,所以我不确定如何避免动画在此过程中冻结。想法?

0 投票
1 回答
867 浏览

ios - 如何从 UIView 创建特定大小的图像

我正在开发 iOS 应用程序,它应该使用户能够创建 Instagram 故事照片并将它们导出到 Instagram。基本上像Unfold、Stellar、Chroma Stories这样的应用程序......我已经准备好用户界面,用户可以从准备好的模板中进行选择,并向他们添加自己的带有过滤器、标签等的照片。

我的问题是 -将创建的 UIView 导出到更大图像的最佳方法是什么? 我的意思是如何获得最好的质量、清晰的标签像素等?因为带有子视图(添加的照片、标签......)的模板视图占用了设备屏幕的 +- 一半。但我需要更大的尺寸来导出图像。目前我使用:

生成的图像大小为 1080 x 1920,但标签不清晰。在将其制作成图像之前,我是否需要以某种方式缩放照片和字体大小?谢谢!

0 投票
1 回答
376 浏览

ios - 如何确定 MTLTextureDescriptor 的最大允许大小

我正在使用UIGraphicsImageRenderer(size: size, format: format). 如果图像太大,它将因断言而失败:

我想通过首先检查图像不超过允许的最大尺寸来防止这种情况。我不确定 8192 是所有设备的常量,并且希望以编程方式获取它而不是硬编码它。

0 投票
0 回答
905 浏览

ios - CGImageCreate:无效的图像 alphaInfo:kCGImageAlphaNone。应该是 kCGImageAlphaNoneSkipLast

我正在尝试将 UIVIew 捕获为图像,然后我可以对其进行操作。我有在 Xcode 11.7/simulator(运行 iOS 13.7)中工作的代码,但会引发此错误:

CGImageCreate:无效的图像 alphaInfo:kCGImageAlphaNone。应该是 kCGImageAlphaNoneSkipLast

在实际设备上运行会导致崩溃。

任何想法如何在没有 alpha 的情况下创建此图像或在事后将其删除?

从这段代码中调用它:

谢谢你的帮助。

0 投票
0 回答
58 浏览

swift - 无法对 UITableViewController 进行快照,但可以对 UIViewController 进行快照

我正在尝试快照UITableViewController

我有一个简单的测试类

此时我只是试图创建一个UIImage并保存到磁盘。

然而,出于某种原因,在UITableViewController我无法对视图进行快照的情况下。如果我切换到UIViewController这个工作。

尝试创建我UImageUITableViewController测试时总是在这里失败

0 投票
2 回答
513 浏览

ios - 使用 UIGraphicImageRenderer 的 CGContext 重绘图像,翻转图像。如何防止翻转?

给定一个图像,当我想转换为标准 sRGB 时,我可以 CGContext 来帮助绘制它,如下所示。

给定原始图像

在此处输入图像描述

当我CGContext直接使用时,它会正确重绘

但是,如果我使用CGContextfromUIGraphicImageRenderer

图像被颠倒如下。为什么它被翻转了,我怎样才能避免翻转?

在此处输入图像描述

0 投票
1 回答
1016 浏览

view - 在 iOS 14+ 上将 SwiftUI 视图转换为 UIImage

我可以使用下面的代码将任何 SwiftUI 视图转换为高分辨率的 UIImage。它工作得很好......直到......我尝试使用大于 CGSize(宽度:2730,高度:2730)的图像尺寸。

如果我将图像大小增加到 CGSize(width: 2731, height: 2731) 或更大,则该行:

在“扩展 UIView”中,不能再绘制 UIImage。

关于为什么有尺寸限制的任何想法?

注意:我可以通过取消注释“扩展视图”中的 2 行并替换:

和:

在“扩展 UIView”... 但是 THEN “layer.render” 不会渲染图像效果,例如“模糊”、SceneKit 子视图或金属。所以使用“self.drawHierarchy”是必须的。