Tag: 核心graphics

iOS – 计算区域中颜色的百分比

我可能并不总是理解API中的每个函数,但通常我至less可以开始解决一个问题。 这一次,我甚至不知道这是可能的或如何攻击…. 我在屏幕上有一个用户可以绘制的区域。 这工作正常。 他们用三种不同的颜色画出三种不同的情况。 我需要检测区域内三种不同颜色的百分比覆盖率。 似乎没有办法获得单个屏幕像素的颜色值。 你将如何处理这个?

如何将UIImage保存为文档目录中的BMP文件

类似的问题已经被问到,但他们总是包含答案“使用UIImagePNGRepresentation或UIImageJPEGRepresentation”但是这不会为我工作,因为我必须将此文件发送到只接受BMP图像的外部Web服务。 这是我迄今为止所实施的 -(NSData*)getBitmapRepresentationFromUIImage:(UIImage*)img{ CGImageRef cgiImg =[img CGImage]; CGColorSpaceRef colorSpaceRef = CGImageGetColorSpace(cgiImg); size_t bitsPerComponent = CGImageGetBitsPerComponent(cgiImg); size_t bytesPerRow = CGImageGetBytesPerRow(cgiImg); size_t dataSize = bytesPerRow * CGImageGetHeight(cgiImg); void* imgBuf = malloc(dataSize); CGContextRef bmpContext = CGBitmapContextCreate(imgBuf, CGImageGetWidth(cgiImg), CGImageGetHeight(cgiImg), bitsPerComponent, bytesPerRow, colorSpaceRef, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big); CGContextDrawImage(bmpContext, CGRectMake(0, 0, CGImageGetWidth(cgiImg), CGImageGetHeight(cgiImg)), cgiImg); NSData* dataToReturn = nil; if (imgBuf!=NULL) { dataToReturn […]

如何填充两个UIBezierPath之间的空间

我正在绘制应用程序,它提供了可变的线宽,这取决于绘制速度。 这个行为受到了Paper app的启发。 我试图实现的algorithm – 绘制两个彼此之间可变距离的贝塞尔path。 在sosborn的答案中描述的解决scheme。 然后平滑path并填充它们之间的距离。 其实我不知道如何填补path之间的空间。

Swift 3中的刮刮卡效果

我试图在Swift 3中为我的应用程序实现刮刮卡效果 ,我find了一些例子,但是它们在Objective C上( 使用scratch和win示例的帮助来显示刮刮卡效果 ) 本质上,用户用手指在图像上进行滑动,并在他们滑动时在手指下方显示另一图像。 任何人都知道如何在Swift 3中做到这一点? 任何帮助不胜感激

使用核心graphics(移动设备)绘制居中文本

我正在使用这个代码: CGRect screenRect = [[UIScreen mainScreen] bounds]; CGFloat screenWidth = screenRect.size.width; CGFloat screenHeight = screenRect.size.height; NSString * text = @"text"; CGContextSetFillColorWithColor(context, [UIColor colorWithRed:1 green:1 blue:1 alpha:RETICLE_ALPHA].CGColor); [text drawAtPoint:CGPointMake(screenWidth/2, screenHeight/2) withFont: [UIFont systemFontOfSize:22.0]]; 为iOS创build一个居中的“文本”。 但是我不确定如何编辑上面的代码来真正使中心alignment起作用,因为直到现在文本并没有真正居中。 对不起,对于那种愚蠢的问题,但我没有find一个工作的例子,我是新的使用核心graphics的问题。

如何在两个单独的图层上绘制iOS,coregraphics

我需要帮助画这样的事情: 我被告知灰色的背景条和紫色条应该在不同的图层上绘制。 然后在那里表示一本书的章节(这个滑块是关于这个章节的)将在这两个层上。 我已经完成了在活动栏上创build渐变的任务,并像这样绘制它: – (void)drawRect:(CGRect)rect{ self.opaque=NO; CGRect viewRect = self.bounds; //NSLog(@"innerRect width is: %f", innerRect.size.width); CGFloat perPageWidth = viewRect.size.width/[self.model.book.totalPages floatValue]; NSLog(@"perpage width is: %f", perPageWidth); CGContextRef context = UIGraphicsGetCurrentContext(); UIBezierPath *beizerPathForSegment= [UIBezierPath bezierPath]; NSArray *arrayFromReadingSessionsSet =[self.model.readingSessions allObjects]; NSArray *arrayFromAssesmentSet = [self.model.studentAssessments allObjects]; NSLog(@"array is : %@", self.model.readingSessions); CGGradientRef gradient = [self gradient]; for (int […]

核心数据是一种graphics数据库吗?

我需要开发一个大的应用程序,需要知道graphics数据库的概念链接http://sparsity-technologies.com/UserManual/API.html#transactions我打算使用核心数据而不是上面的链接框架的工作。 我想回答以下问题。 1)什么是图表数据库?。简单的通用示例的说明,我们不能用sqlite执行。 2)核心数据是否属于关系数据库? 说明。 3)核心数据是否在Graph Database下? 但是在苹果文档中他们提到核心数据是用于对象图pipe理的。对象图pipe理是指图数据库。如果我想做关系数据库,对象核心数据之间的加权边是否合适?

使用CALayer设置UITableViewCell背景颜色

在iOS上,我将一个CALayer添加到UITableViewCell的图层中。 这是我第一次使用CALayer,它只是改变表格单元格的背景颜色。 我的目标是(1)学习如何使用CALayer,(2)使用Instruments来testing绘图是否比当前的实现更快,这会降低CGContextFillRect的速度。 ( 技术问答QA1708是所有这一切的催化剂。) 目前的实施(工程) – (void)drawRect:(CGRect)r { UIColor *myColor = [self someColor]; [myColor set]; CGContextRef context = UIGraphicsGetCurrentContext(); CGContextFillRect(context, r); // draw the background color // now draw everything else // […] } 尝试新的实施(不起作用) #import <QuartzCore/QuartzCore.h> @implementation MyCell { CALayer *backgroundLayer; } – (id) initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; […]

如何在放大CATiledLayer时绘制非转换的上下文?

我正在使用CATiledLayer来显示数据。 默认情况下,drawLayer函数获得转置和缩放的上下文,这允许绘图代码不知道缩放级别和正在请求的图块。 但是,我想使用缩放function来改变数据的水平范围,而不会发生实际的缩放。 到目前为止,我得到了这样的代码: (void)drawLayer:(CALayer*)layer inContext:(CGContextRef)context { /* retrieve the transformation matrix from the context. */ CGAffineTransform contextTrans = CGContextGetCTM(context); /* Scale the context back, so all items will still have the same size */ CGContextScaleCTM(context, 1.0/contextTrans.a, 1.0/contextTrans.d); <.. loop through all datapoints ..> { /* Transpose the point-centers to the new zoomed context */ […]

build议使用Core Graphics技术来绘制非常自定义的UITableViewCells

大家好。 对于在核心graphics中绘制类似的几个关键点感到好奇。 什么时候应该使用多个图层? 我知道我可以使用裁剪path来做四舍五入的angular落,从我的理解,这听起来像比在CALayer上放置边框半径更有效。 是否有可能在drawRect中使用UIImageView的输出? 我知道你实际上不能使用这个视图,但是在很多地方我已经看到UIImageView在绘制图像方面比在drawRect中直接绘制图像要高效得多。 是否有可能以某种方式利用它们,或者你只是需要吸取它,并使用CG? 任何其他的技巧,窍门和资源是最好的方式来绘制像这样的单元格以获得尽可能高的FPS比率,这是值得欢迎的。