问题标签 [quartz-2d]
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.
iphone - iOS 4 上的 CALayer 或 UIView backgroundColor UIImage
大家好;
我不确定发生了什么变化以阻止它起作用。在 iOS 3 SDK 上,以下代码在 CATiledLayer 类中运行良好:
但是,为 iOS 4 编译并在模拟器上执行无法渲染图像。我很困惑,特别是因为作为子层添加的图像渲染得很好。只有背景不渲染。
iphone - 使用 CGContext 以编程方式创建 PDF - 无法获得换行符 + iPhone
我正在使用 CGContext 和 CGContextShowTextAtPoint 在我的 iPhone 应用程序中以编程方式创建 PDF。虽然这适用于较小的文本,但每当我的文本中有换行符 (\n) 或希望文本在到达页面末尾时自动换行到下一行时,这不会发生。
文本中的任何换行符都简单地替换为空格,并且文本不会换行。非常感谢您提前了解如何实现这一目标。这是我用来创建 PDF 的代码。
cocoa-touch - 如何获取用户触摸的 PDF 对象(字符串、图像等)?
我正在使用 CGPDF* 类集来阅读 pdf 文档,有没有办法提取用户触摸(“点击”)的对象?换句话说,有没有办法在某些坐标处获取 PDF /(Quartz?)对象?
objective-c - 保存 CGContextRef
我有一个绘图应用程序,我想在其中创建一个撤消方法。绘图发生在 TouchesMoved: 方法中。
我正在尝试创建一个 CGContextRef 并将其推送到堆栈或将其保存在可以稍后恢复但没有任何运气的上下文属性中。任何建议都会很棒。这是我所拥有的...
然后我有一个由我的撤消按钮触发的方法......
当我运行它时,我相信我的 drawingSurface 被分配为零,因为它只会擦除图像中的所有内容。
我的猜测是我不能以这种方式使用 pop 和 push。但我似乎无法弄清楚如何保存上下文,然后将其推回绘图表面。嗯。任何帮助都会……嗯……有帮助。提前致谢 -
而且,仅供参考,这是我在屏幕上绘制的内容,效果很好。这是在我的 TouchesMoved 里面:
python - 将 Quartz 2d python 演示移植到纯 Core Graphics C
首先让我注意到我完全不知道我在用objective-c和mac开发做什么(尽管我对c很好)。我使用 Quartz-2d 绑定 python 在 leopard 上制作了一个非常简单的图形实用程序:
http://developer.apple.com/graphicsimaging/pythonandquartz.html
基本上输入一个文本文件并编写一个漂亮的 png 文件(它是一个命令行实用程序)。在我将实用程序移至我们的雪豹服务器并发现 CoreGraphics 和雪豹上的 32 位 python 存在各种问题之前,我很高兴。这些问题有些是可以解决的,有些则不是。所以,我试图将这个简单的实用程序脚本移植到objective-c(真的是CI假设)并遇到一些问题。有没有人知道是否有一个很好的例子,几乎与python和quartz中给出的例子完全一样,但都是本机代码?
我的主要问题是将图形上下文写入文件
MyCreateBitmapContext 是apple's guide on quartz 2d中的一个简单函数。
TL;DR 有人有上面链接中给出的 python 演示的 C 端口吗?
cocoa - 用 CGImage 绘制图像?
我有一个CGImageRef
,我想将它显示在一个NSView
. 我已经有一个CGImageRef
源路径,但以下不起作用:
它出什么问题了?
iphone - 在 iphone OS 上保存通过 PDF 呈现的 Quartz 绘图
在我的应用程序中,我正在显示 PDF 页面,并希望允许用户通过在页面顶部徒手绘制来“标记”文档。我可以处理用于徒手绘图的 Quartz 代码,但是我可以使用什么方法来保存这些“标记”,以便下次用户将 PDF 加载到应用程序中时它们可以重新显示在页面上?
谢谢,
//斯科特
iphone - 为什么我的 CGContext 被限制在界限内?
我应该能够覆盖 drawInContext() 并在我的 CALayer 范围之外绘制吗?即使我的图层将 maskToBounds 设置为 NO(默认值),我的 drawInContext() 也会使用设置为我图层边界的剪辑来调用,但我无法在它之外进行绘制。
我的测试层做这样的事情:
这是我的设置方式:
这只是核心动画层的限制吗?(我需要在该层之上的层中绘制吗?)
谢谢。
iphone - 如何在 iPhone 的 Quartz 中获得发光效果?
我正在为 iphone 寻找石英 2d 中的发光效果。我尝试制作具有不同 alpha 值的线条来模拟发光,但它没有用......
任何人都可以帮我吗?
ps 我正在制作一个用户可以用发光绘制的应用程序。我有基本的线条,但没有发光:(
ipad - 为什么 Quartz 不对我的 drawInContext() 进行双重缓冲?
我正在通过 drawInContext() 在 CALayer 子类中渲染一个简单的线条图(中间有一些文本的线条)。当用户通过调用 setNeedsDisplay 来执行手势时,我会更新该层。如果没有进行双缓冲,我所看到的效果就是我所期望的......即我看到新渲染的部分与旧渲染的部分重叠。当我停止更新(完成手势)时,系统“赶上”并且我总是看到正确的最终结果,但在更新期间我看到不一致的结果......这种效果并不微妙,有时它是极端的......例如,如果我保持更新速度足够快,我可以在新部分提前 绘制时将绘图的陈旧部分保持在屏幕上几秒钟......
我完全不明白这一点。如果 Quartz 正在进行缓冲,那么它似乎没有将结果整体传送到屏幕上,或者它错误地计算了受影响的区域。
我尝试过的事情:
1) 我正在禁用隐式动画并在 CATransaction 中进行所有绘图
2)我没有在我的绘图中犯错误......实际上只是两行,中间有一些文字......我无法渲染中间工件。
3)我尝试通过跳过大部分更新来限制更新速率......但即使在较低的速率下,我也会看到工件,直到我停止更新并让系统赶上。
4)顺便说一句,这在模拟器和设备(iPad)上发生的情况相同。
我是否有必要自己绘制到屏幕外缓冲区并将其完整地复制到屏幕上?我以为我已经读过 Quartz 为我做了这个。
更新: 像往常一样,经过数小时的头撞墙后,我在发布问题 5 分钟后找到了(部分)答案。我意识到我正在使用 CATiledLayer 来让我的图层在缩放时重新渲染。如果我将它切换回常规的 CALayer,故障就会消失。所以我猜我看到了单独的瓷砖渲染的伪影。现在我正在想办法解决这个问题......