问题标签 [quartz-graphics]

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 投票
2 回答
2255 浏览

cocoa-touch - 绘制一条线的动画(Quartz 2D?)

您将如何在 iPhone 上的 UIView 中为线条的绘制设置动画?这可能吗?它可以被绘制,但它可以很容易地被动画化,所以它看起来是手绘的吗?

0 投票
2 回答
22405 浏览

ios - iOS:如何使用 Quartz 测量字符串的宽度和高度?

在我提出问题之前,这是来自 Apple 的文档 re:how to determine the width of a string of using Quartz:

如果文本测量对您的应用很重要,则可以使用 Quartz 2D 函数来计算它们。但是,您可能首先考虑使用 ATSUI,它的优势在于文本布局和测量。ATSUI 有几个获取文本度量的函数。您不仅可以获得布局后文本指标,而且在极少数需要它们的情况下,您可以获得布局前文本指标。与您必须自己执行计算的 Quartz 不同,ATSUI 会为您计算测量值。例如,您可以通过调用 ATSUI 函数 ATSUMeasureTextImage 来获取文本的图像边界矩形。

如果您认为 Quartz 文本比 ATSUI(或 Cocoa)更适合您的需求,您可以按照以下步骤在 Quartz 绘制文本之前测量文本的宽度:

  1. 调用函数 CGContextGetTextPosition 获取当前文本位置。
  2. 使用函数 CGContextSetTextDrawingMode 将文本绘制模式设置为 kCGTextInvisible。
  3. 通过调用函数CGContextShowText来绘制文本,在当前文本位置绘制文本。
  4. 通过调用函数 CGContextGetTextPosition 确定最终文本位置。
  5. 从结束位置减去开始位置以确定文本的宽度。

以下是我的问题:

  1. 这真的是使用 Core Graphics 确定字符串宽度的最佳方法吗?它看起来很脆弱,因为我的文本与 2D 图形元素共存,所以我想对所有渲染使用相同的上下文。我希望会有一些紧凑的方法,比如:

    /li>
  2. 我读到 ATSUI 已经过时,将被 Core Text 取代。这是真的吗?如果是这样,是在 iOS 中吗?

0 投票
3 回答
1992 浏览

objective-c - 在 Quartz 2D 中,是否可以通过删除除所需颜色通道之外的所有内容来屏蔽图像?

所以我尝试使用 Quartz CGImageCreateWithMaskingColors 函数,但他唯一的问题是它掩盖了您选择的颜色范围。

我想屏蔽除我选择的颜色范围之外的所有内容。例如,我想在图片中显示所有红色,但删除其他通道(绿色和蓝色)。

我在 Objective-C 中这样做,我是一个菜鸟,所以请给我例子:)

任何帮助是极大的赞赏。

0 投票
1 回答
616 浏览

iphone - 移动时锁定 UIImageView

UIImageViewtouchesBegan, touchesMoved,touchesEnded移动a 它运作良好,但触摸也适用于其他UIImageViews,铺设。

如何在移动时锁定触摸活动UIImageView?我已经用一个布尔值尝试过这个,但它没有奏效,因为touchesMoved每次UIImageView移动都会被调用,而不仅仅是一次。

0 投票
1 回答
4158 浏览

iphone - iPhone + Quartz:如何获得水的效果

有没有机会在 iPhone 上用 Quartz 构建水效果?

类似于这个的东西:

替代文字 http://img37.imageshack.us/img37/6358/bild1wbm.png

0 投票
5 回答
3602 浏览

iphone - GLPaint 保存图像

我正在尝试在 iPhone 上开发一个复杂的绘画应用程序。我目前正在使用 Quartz 进行绘图(例如CGContext...)。不幸的是,Quartz 开销对于我正在做的绘图类型来说太慢了,我正在使用 GLPaint 示例作为参考点移植到 OpenGL 调用。

有没有办法从 EAGLview 类(相当于 Quartz 的 UIGraphicsGetImageFromCurrentImageContext)中获取 UIImage/CGImage ?基本上我需要保存由 GLPaint 应用程序绘制的图片。

0 投票
1 回答
1058 浏览

iphone - 从 imagePickerController 中选择的 Quartz 拉伸图像

我有一个应用程序,允许用户从相机或照片库中选择图像。然后它将该图像放置在 ImageView 中。然后我使用 Quartz 从该图像视图中获取图像并将其与一些基本叠加层等一起渲染。

问题在于,当从相机或相机胶卷中拾取图像时,Quartz 会以 90 度旋转绘制图像并垂直拉伸图像。从照片库中选择任何其他照片时没有问题。如果allowImageEditing 设置为YES,则不会出现此问题。

如果有人可以阐明它会有所帮助,我是这方面的新手。

我的 CameraViewController 中的代码

绘制 Quartz 的视图中的代码

0 投票
1 回答
433 浏览

macos - Is anything required to get a Quartz callback besides registering for it?

I'm trying to use CGDisplayRegisterReconfigurationCallback to get display reconfiguration events in Quartz on Mac OS X. Here's the super-simple code:

However, the callback isn't getting called when I plug/unplug monitors, etc. CGDisplayRegisterReconfigurationCallback returns success.

'new to os x development' would be an overstatement of my background knowledge here. Do I need to instantiate something like a quartz event loop to get callbacks to work?

0 投票
2 回答
6427 浏览

iphone - 如何在 Objective-C 中设置显示顺序

我正在尝试使用 CGContext 路径绘制命令在 UIImageView 绘图和线条绘图之间混合,但绘制顺序不正确。我需要在图像顶部绘制路径,但反过来。

我实现它的方式:

  1. 在 UIImageView 中设置 UIImage 并将 UIImageView 添加为主视图的子视图。
  2. 接下来我使用'drawRect'(刷新绘制函数)使用UIKit CGContextStrokePath 函数绘制路径。

现在,除了直接使用 Context 图像绘制功能(我想避免这种情况,因为我通过几个 UIImageView 重用我的图像资源),有没有办法正确设置顺序(可能是一个标志集)?

问题再次是在 UIImageViews 之前绘制线条/路径(通过与父 UIView 的连接自动绘制),因此它们在图像/UIImageViews 上不可见。

谢谢

0 投票
2 回答
32839 浏览

iphone - iphone初学者问题:画一个矩形。我究竟做错了什么?

试图弄清楚我在这里做错了什么。尝试了几件事,但我从未在屏幕上看到那个难以捉摸的矩形。现在,这就是我想做的——只需在屏幕上绘制一个矩形。

除了 CGContextSetRGBFillColor() 之外,我在所有内容上都收到“无效上下文”。在那之后获取上下文对我来说似乎有点错误,但我不在家看我昨晚使用的例子。

我也搞砸了其他事情吗?我真的很想今晚至少完成这么多……

谢谢,

肖恩。