问题标签 [cgcontext]

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 回答
1815 浏览

iphone - 如何在用户触摸图像时擦除图像的一部分

我的大目标是在图像上设置一个灰色区域,然后当用户在该灰色区域上摩擦时,它会显示下面的图像。基本上就像一张彩票刮刮卡。我已经通过文档以及此站点进行了大量搜索,但找不到解决方案。

以下只是一个概念验证,用于根据用户触摸的位置测试“擦除”图像,但它不起作用。:(

我有一个检测触摸的 UIView,然后通过执行以下操作将移动的坐标发送到 UIViewController,该 UIViewController 在 UIImageView 中剪辑图像:

问题是触摸被发送到这个方法就好了,但在原件上没有任何反应。

我做的剪辑路径不正确吗?或者?

不太确定......所以你可能有任何帮助将不胜感激。

在此先感谢,乔尔

0 投票
2 回答
1346 浏览

objective-c - drawRect 上下文错误

我听说很多人不使用 drawRect 会出现上下文错误

现在我有这个:

错误:

哪个在以前的程序上工作过,但在这个程序上没有。有什么不同:我有一个视图控制器,它调用这个 UIView:

这是我的第一个问题,我不确定我应该在这里放多少信息代码,所以请放轻松。

0 投票
4 回答
24433 浏览

iphone - iPhone CGContext:用两种不同的颜色绘制两条线

我在将 CGContext 与 iPhone 应用程序一起使用时遇到了一些麻烦。我试图用不同的颜色画几条线,但所有的线总是最终使用最后使用的颜色。我尝试了几种方法,但都不走运。

我建立了一个小样本项目来处理这个问题。这是我的代码,我在 drawRect 方法中使用。我正在尝试画一条红线和一条蓝线:

感谢您的帮助

0 投票
1 回答
2327 浏览

iphone - Quartz 2D:从一个 CGContext 绘制到另一个 CGContext

我有一个 CGBitmapContext ( bitmapContext ),我想将它的一些矩形部分 ( rect ) 绘制到当前 CGContext ( context )。

现在我这样做:

是最优的吗?最好的方法是什么?

0 投票
1 回答
4169 浏览

iphone - 使用 CGAffineTransform 从 UIImageView 保存 UIImage

我在 UIScrollView 中有一个 UIImageView,我使用户能够对其执行任意数量的翻转和旋转操作。我有这一切工作,允许用户缩放、平移、翻转和旋转。现在我希望能够将最终图像保存为 png。

然而,它正在努力解决这个问题......

我已经看到了很多与此类似的其他帖子,但大多数只需要应用单个变换,例如旋转,例如从旋转的 UIImageView 创建 UIImage

我想应用用户“创建”的任何变换,这将是一系列连接在一起的翻转和旋转

当用户应用各种旋转、翻转等时,我使用 CGAffineTransformConcat 存储级联变换。例如,当他们旋转时,我会:

以下方法是迄今为止我用完整变换创建 UIImage 的最佳方法,但是图像总是被翻译在错误的位置。例如,图像是“偏移”。我的猜测与使用在 CGAffineTransformTranslate 或 CGContextDrawImage 中设置的错误边界有关。

有没有人有任何想法?这似乎比我认为的要难得多......

0 投票
1 回答
2673 浏览

iphone - 在 UIImageView 上绘画具有更好的性能

我有一个视图,当用户在 iPad/iPhone 的屏幕上移动手指时,我画了一条虚线。我在存储为 LastLocation 的点和作为 CurrentLocation 的点之间画了一条线。图纸要在屏幕上永久显示。每次触发 touchMoved 事件时都会发生这种情况,并最终让我画一条虚线来跟踪人们拖动手指的位置......就像绘画应用程序一样。

我有一个被调用的函数,它在触发触摸事件时执行以下操作。该视图包含一个名为 drawImage 的 UIImageView。我使用 UIImageView 作为持久绘制线条的一种方式。这显然不是人们通常做油漆应用的方式,因为它很慢。任何对使用 CGContextRef 调用进行持久绘画的更好方法的见解将不胜感激。

'drawImage.image drawInRect' 调用非常慢,本质上是重绘整个图像。

有没有更快的方法来做到这一点?我在绘画博客的几个地方看到过这样的绘图代码,但它有点慢。很想听听关于这个话题的一些想法。

0 投票
2 回答
1185 浏览

iphone - 如何通过一个点或一个点画一条线,该线的长度始终相同(iPhone应用程序开发)

我有一个带有径向光标的圆形图,光标移动到您在 iPhone 屏幕上触摸的位置,但我需要光标保持相同的长度,即使触摸发生在靠近图形原点或外部的位置图表。我不知道该怎么做。任何帮助将不胜感激

0 投票
3 回答
957 浏览

iphone - 核心文本:计算后台线程中的页数

假设我正在使用 Core Text 为 iPhone 编写文本查看器。每次用户更改基本字体大小时,我都需要计算显示具有给定字体大小的整个 NSAttributedString 需要多少页(固定大小的 CGRects)。

而且我想在单独的 NSOperation 中执行此操作,以便用户不会遇到不必要的 UI 滞后。

不幸的是,要计算页数,我需要使用不可见文本绘图模式绘制我的框架 (CTFrameDraw),然后使用 CTFrameGetVisibleStringRange 来计算字符数。但是要绘制文本,我需要一个 CGContext。问题从这里开始......

我可以通过调用 UIGraphicsGetCurrentContext 在 drawRect 中获取 CGContext,但在这种情况下:

  1. 我必须使用 performSelectorOnMainThread 调用对 CGContext 进行操作的任何方法,对吗?
  2. 另一个线程应该 CFRetain 这个上下文。在drawRect方法之外使用drawRect的CGContext是否可以接受?

还有其他解决方案吗?在工作线程中创建单独的 CGContext?如何?CGBitmap上下文?我如何确定所有条件(我不知道,分辨率?等)都与 drawRect 的 CGContext 中的相同,以便正确计算页面?

0 投票
3 回答
675 浏览

iphone - iphone绘图上下文

我不是想在一个组件上绘图,我只是想创建一个新的上下文(我认为)并吐出一个 UIImage,上面有我的绘图内容。我不想利用任何现有的组件。我正在使用以下代码:

不幸的是,我收到“无效上下文”错误消息。搜索 Google 似乎只会让人们尝试利用现有组件。我想吐出一个新的 UIImage。

我在这里尝试了创建位图上下文的示例 - http://developer.apple.com/iphone/library/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_context/dq_context.html#//apple_ref/doc/uid/TP30001066-CH203 -SW9

我仍然得到:

:CGContextGetShouldSmoothFonts:无效上下文:CGContextSetFont:无效上下文:CGContextSetTextMatrix:无效上下文:CGContextSetFontSize:无效上下文等...

0 投票
2 回答
1847 浏览

objective-c - 如何使用 CGContext 在现有 UIView 之上绘制?

我有一个子类,UIView我在我的initWithFrame方法中添加了一些子视图。除其他外,我还添加了背景。

我想在这些视图之上绘制一些形状(恰好覆盖了整个屏幕)。但是,当我实现drawRect:绘制这些形状时,它们并没有出现。删除其他子视图后,我意识到形状是在其他子视图“下方”开始绘制的。

我怎样才能把它们画在上面?