core-graphics相关内容

给定初始接触点,如何计算在圆周上包含这些点的圆的半径?

我实现了一个绘制弧线的UIView。我让它与设定的框架一起工作,但我想让它这样当用户开始绘制圆弧时,我可以快速计算出给定初始接触点的圆弧的半径。 假设我收集了5个初始点,我如何计算这条线开始创建的圆弧的半径? 推荐答案 您可以通过三个非共线的点构建一个圆。计算三个决定因素的值: D = |x1 y1 1| |x2 y2 1| |x3 y3 1| ..

CALayers中的iOS绘图在视网膜上显示为像素化或模糊

我有一个自定义UIView,它在覆盖的 - (void)drawRect:(CGRect)rect 该功能运行良好,在视网膜屏幕上显示清晰的效果。 但是,现在我想将绘图所基于的属性设置为动画。创建可设置动画的属性似乎只能在CALayer上进行,因此我不是在UIView中进行绘制,而是创建一个自定义的CALayer子类并在 中进行绘制 - (void) drawInContext:( ..
发布时间:2022-07-11 18:18:36 移动开发

CGRect和CGPath的交集

有没有检测CGPath和CGRect是否相交的有效方法? 我想过循环遍历CGRect中的每个点,就像这样: for (CGPoint point in rect) { if (CGPathContainsPoint(path, nil, point, NO)) { intersects = YES; break; } 但我想知道是否有更好的方法。 ..
发布时间:2022-04-05 09:27:43 移动开发

在不加载到内存的情况下获取图像的大小

我有几个 .png 图像(ETA: 但格式也可以是 JPEG 或其他格式),我将在 UITableViewCells.现在,为了获得行高,我加载图像,获取它们的 size 属性,并使用它来计算行的高度(计算沿途的任何必要更改,因为大多数图像在显示之前都会调整大小).为了加快速度并减少内存使用量,我希望能够在不加载图像的情况下获得 size .有没有办法做到这一点? 注意:我知道我可以实施许多 ..
发布时间:2022-01-23 11:19:47 移动开发

iPhone - 将透视图应用于 CALayer 时出现锯齿状边缘

我有一个 CALayer,我将透视应用到使用 CGTransform3D 并指定 m14 属性.应用透视时,图层的边缘呈锯齿状.我听说有人提到在图层周围添加一个 1px 的透明边框会有所帮助.我不知道该怎么做.我尝试使用 CALayer 的 border 和 borderWidth 属性,但锯齿状边缘仍然存在.我还尝试将在所有边上绘制 1px 的矩形减小,但这也无济于事. 任何帮助都会很棒! ..
发布时间:2022-01-23 11:15:56 移动开发

在 iOS 上的后台线程中绘图

我有一个带有一些非常复杂的绘图逻辑的视图(它是一个从 GIS 数据中绘制的地图视图).在主线程上执行此绘图会锁定 UI 并使应用程序无响应.我想通过 NSOperation 将绘图移至后台线程. 构建这个的最佳方式是什么? 我目前正在绘制到内存外的 CGContext,然后将其转换为 CGImageRef,我将其发送到视图以在主线程上进行 blit.不幸的是,这会占用大量内存,并且似乎 ..
发布时间:2022-01-23 11:15:47 移动开发

如何在不平滑任何东西的情况下放大 UIImage?

我想以这样一种方式放大 UIImage,使用户可以非常清晰地看到 UIImage 中的像素.当我把它放到 UIImageView 上并放大变换矩阵时,UIImage 会出现抗锯齿和平滑. 有没有一种方法可以通过简单地重复每一行和每一列来获得更大的像素,从而在更大的位图上下文中进行渲染?我怎么能这样做? 解决方案 #import vi ..
发布时间:2022-01-23 11:11:34 移动开发

在后台线程中解码图像?

我有一个后台线程来加载图像并在主线程中显示它们.我注意到后台线程几乎无所事事,因为实际的图像解码似乎是在主线程中完成的: 到目前为止,我已经尝试在后台线程中调用 [UIImage imageNamed:]、[UIImage imageWithData:] 和 CGImageCreateWithJPEGDataProvider 没有不同之处.有没有办法强制在后台线程上进行解码? 这里已经 ..
发布时间:2022-01-23 10:55:04 移动开发

如何自动裁剪 UIImage?

我有一个包含形状的 UIImage;其余的都是透明的.我想通过尽可能多地裁剪透明部分来获得另一个 UIImage,仍然保留所有非透明像素 - 类似于 GIMP 中的自动裁剪功能.我该怎么做呢? 解决方案 这种方法可能比您希望的更具侵略性,但它可以完成工作.我正在做的是为 UIImage 创建一个位图上下文,获取指向原始图像数据的指针,然后筛选它以寻找不透明的像素.我的方法返回一个 CGRe ..
发布时间:2022-01-23 10:51:45 移动开发

CGContextRef 中的坐标系是什么样的?

我假设原点在左下角,y 轴从 0 开始向上扩展.x 轴从 0 开始向右扩展. 我只是问,因为我从我的绘图代码中得到了非常奇怪的结果......想确保我没有弄错这部分. 解决方案 这取决于使用此上下文的位置.Mac 上用于视图、图层和图像绘制的标准核心图形绘制上下文的左下坐标为 (0,0). iPhone 上的标准坐标系是倒置的,UIView 的左上角坐标为 (0,0).它的支持 ..
发布时间:2022-01-23 10:50:07 移动开发

在多点触控中跟踪触摸点

我正在做一个绘图项目,我想支持多点触控,我已经浏览了在线文档,其中建议跟踪触摸点,我做到了,但我没有得到想要的行为.我没有得到直线. 下面是我的代码 - (void)viewDidLoad{[超级视图DidLoad];//在加载视图后做任何额外的设置,通常是从一个 nib.红色 = 0.0/255.0;绿色 = 0.0/255.0;蓝色 = 0.0/255.0;刷 = 10.0;不透明度 ..
发布时间:2022-01-23 10:50:00 移动开发

如何忽略多点触控序列中的某些 UITouch 点

我正在为 ipad 开发绘图应用程序,我正在提供全屏绘图.因此,就像我们现在所有人一样,用户可能会用他的手腕支撑或将手放在屏幕上来书写.所以我的目标是让用户用他的手腕/手支撑自由书写. 但应用应该只检测手指的绘制,或者忽略/拒绝手腕和手部的触摸并将它们删除 我开始研究它,我创建了一个启用多点触控的示例项目. 下面是我的代码 - (void)touchesBegan:(NSSet ..
发布时间:2022-01-23 10:47:50 移动开发

在 iOS 中使用多点触控绘图撤消

我在写作时使用多点触控,所以基本上我正在做的是,我在用手支持写作,因为通常,它是如何用户权限的,我点击了这个链接 如何忽略多点触控序列中的某些 UITouch 点 一切正常,但是当我用手触摸屏幕书写时,它们的撤消有些问题,否则它工作正常. 下面是我的代码 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{U ..
发布时间:2022-01-23 10:36:17 移动开发

使用 Cglayer 绘图进行撤消和重做

我正在使用绘图应用程序,我正在使用 CGlayers 进行绘图.在触摸结束时,我从图层中取出图像并将其存储在一个数组中,我用它来撤消操作. 我的触摸结束功能 -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{NSLog(@"触摸结束");UIGraphicsBeginImageContextWithOptions ..
发布时间:2022-01-23 10:36:10 移动开发

裁剪 CAShapeLayer 以检索外部路径

我正在尝试用其他图层裁剪图层,但是,我不是创建蒙版 (B) 并裁剪图层 (A),而是得到一个形状为 B 的裁剪图层 A,我想得到一个形状为 A 的图层以及通过 B 层裁剪创建的“洞". ************* ***A层**** A 层 * ************** ***** * * * ****** * B * * ->**** ***** 没有形状 B 的 A 层* ***** * ..
发布时间:2022-01-23 10:34:41 移动开发

在 iOS 中撤消/重做绘图

我正在开发一个绘图应用程序,我想做撤消/重做,为此我将触摸结束时的 CGPath 保存到 NSMutableArray,但我不明白如何在单击撤消按钮时呈现 CGPaths 编辑1: 由于我使用的是 BezierPaths,所以,我首先决定采用一种简单的方法,即在不使用 CGPath 的情况下抚摸这条路径, EDIT2:由于我的撤消是在分段中进行的(即,部分而不是整个路径被删除), ..
发布时间:2022-01-23 10:32:56 移动开发

如何缩小 UIImage 并使其同时变得清晰/锐利而不是模糊?

我需要缩小图像,但要以锐利的方式.例如,在 Photoshop 中有图像尺寸缩小选项“Bicubic Smoother"(模糊)和“Bicubic Sharper". 此图像缩小算法是否在某处开源或记录在案,或者 SDK 是否提供执行此操作的方法? 解决方案 仅仅使用 imageWithCGImage 是不够的.它会缩放,但无论放大还是缩小,结果都会变得模糊和次优. 如果你想获 ..
发布时间:2022-01-23 10:20:04 移动开发

如何向 UIImage 或 UIImageView 或 UIView 添加外发光

我想为 UIImage/UIImageView/UIView 添加 FADED 阴影/外发光,但我不知道 Core Graphics 完全没有. 编辑:请帮忙!! 解决方案 采用 Cirrostratus 概述的方法,保留它的缓存副本,然后在拖动时应用变换来更改图像的大小和/或位置. (警告,这不是功能/测试代码,但应该让你开始) -(UIImage*)addGlowToIm ..
发布时间:2022-01-20 16:12:28 移动开发