- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
刚接触 Quartz,我对简单形状、渐变和阴影的绘制速度感到好奇;特别将 Quartz 绘图功能与 iPhone 上的 Quartz 图像绘制进行比较。
假设我需要绘制一个填充、描边和阴影的矩形。我假设将预烘焙的矩形导入为 PNG 并使用drawInRect:或drawAtPoint:绘制它比使用Quartz的绘图函数绘制相同的东西更快,因为后者需要显式计算。另一方面,我认为绘制图像会增加内存使用和应用程序大小,因为我必须导入图像然后分配它。这听起来对吗?
除此之外,这两种技术有什么大的优点/缺点吗?作为一个非常熟悉图形程序并且刚刚接触 Quartz 的人,我试图确定在我的代码中使用绘图函数相对于预烘焙整个 UI 和导入图像是否有任何优势。
最佳答案
我有一个类似的问题,所以我超时了不同的方法。在大多数简单的绘图情况下(例如矩形示例),从磁盘加载图像似乎比绘制图像稍慢,这可能是由于需要磁盘访问。在这些情况下,我决定使用 Quartz 绘图例程,只是因为它们给我带来了灵 active 。如果我想在将来更改 UI 元素的大小(也许是为了支持更大或更高分辨率的显示),我需要重新渲染所有图像,其中矢量图将根据需要进行缩放。
我确实看到了显着性能提升的一个领域是我绘制作为背景的大径向渐变。在 Shark 中,我可以看到 CGContextDrawRadialGradient() 调用占用了大量 CPU 时间。当我用静态图像替换 quartz 绘制的径向渐变时,我发现应用程序启动时间明显减少(该背景是在应用程序启动期间放置的)。奇怪的是,我还发现应用程序内存使用量减少了约 0.5 MB,但我无法完全解释这一点。
如果您想自己测试一下,我强烈建议您选择图像编辑器 Opacity ,它可以为绘图(包括完整的 UIView 或 CALayer 子类)生成 Quartz 代码,并输出同一绘图的 PNG。这使得在应用程序中实现这两个路径并对其进行测试变得非常简单。
关于iPhone 在 Quartz 绘图与预烘焙图像方面的性能差异(我猜可以简化为 Quartz 与 Quartz),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1604341/
有人可以告诉我为什么这不起作用: $(document).ready(function() { $("#cookie").text("expanded"); //panel toggl
我通过终端命令生成(烘焙) Controller : bin/cakebake.bake Controller [controller_name] 是否有命令可以反转它?要删除生成的 Controll
我一直在查看说明书中的文档以在烘焙 View 中生成自定义 HTML,但我很难让我的自定义代码在烘焙过程中运行。 我按照说明进行了操作,这些说明是: 修改“烘焙”模板生成的默认 HTML¶ 如果您希望
我正在尝试执行 Simple Acl controlled Application cakephp 食谱中的教程。这个想法是: 制作数据库 CREATE TABLE users ( id INT(
我是一名优秀的程序员,十分优秀!