Tag: 核心graphics

NSString drawInRect设置上下文

我在后台画一些图片。 有时我的应用程序崩溃奇怪的错误: 函数签名专门化<Arg [0] =拥有保证> MyApp。 我检查了所有的崩溃,并且将所有的崩溃都放在了不使用上下文的方法上。 其中一人画文。 我如何指定上下文来绘制文本? UIGraphicsBeginImageContextWithOptions(size, false, 1.0) let ctx = UIGraphicsGetCurrentContext() // some code str.drawInRect(CGRectMake(floor(10 * scaleFactor), yOffset, size.width, floor(60 * scaleFactor)), withAttributes: textFontAttributes) // code let img = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() 编辑 我没有find任何方法在特定的上下文中绘制文本。 在绘制文本和UIGraphicsPopContext()之前,我使用UIGraphicsPushContext(ctx) 。 https://stackoverflow.com/a/10402637/820795

CGContextShowTextAtPoint在Retina设备上产生非Retina输出

我试图添加一个文本到UIImage ,我得到一个像素化的绘图。 我尝试了一些其他的答案没有成功: 使用CoreGraphics绘制视网膜显示 – 图像像素化 视网膜显示核心graphics的字体质量 用Core Graphics绘图在Retina显示屏上看起来矮胖 我的代码: -(UIImage *)addText:(UIImage *)imgV text:(NSString *)text1 { int w = self.frame.size.width * 2; int h = self.frame.size.height * 2; CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGContextRef context = CGBitmapContextCreate (NULL, w, h, 8, 4 * w, colorSpace, kCGImageAlphaPremultipliedFirst); CGContextDrawImage(context, CGRectMake(0, 0, w, h), imgV.CGImage); CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, […]

iOS – 从底部填充UIBezierpath的animation

我有一个UIBezierPath自定义UIView , draw() 。 我想填充这个path,让我们从下到上说一个矩形。 我怎样才能实现这一点。 从这里我已经看到使用CAShapeLayer它可能。 这是工作正常的animation,但填充不会发生在矩形上从下到上。 请指导。

如何删除核心graphics中的行

我在我的应用程序中使用CGContextAddLineToPoint画一条线,现在我想从给定的点删除线我怎么能做到这一点我使用触摸画线

如何在iOS中填充进度圈?

我需要像这样做一个进度圈: 我为这个圆圈创build了一个CAShapeLayer,并为它的strokeEnd属性设置了这样的animation: pieShape = CAShapeLayer() pieShape.path = UIBezierPath(arcCenter: CGPointMake(29, 29), radius: 27.0, startAngle: CGFloat(startAngle), endAngle: CGFloat(endAngle), clockwise: true).CGPath pieShape.fillColor = UIColor.clearColor().CGColor pieShape.strokeColor = UIColor.blackColor().CGColor pieShape.lineWidth = 4.0 self.layer.addSublayer(pieShape) let countDownAnimation = CABasicAnimation(keyPath: "strokeEnd") countDownAnimation.duration = durationInSeconds countDownAnimation.removedOnCompletion = false countDownAnimation.fromValue = NSNumber(float: 0.0) countDownAnimation.toValue = NSNumber(float: 1.0) countDownAnimation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear) self.pieShape.strokeStart = 1.0 self.pieShape.addAnimation(countDownAnimation, […]

画三angular形的iOS

下面的代码画了一个圆,我怎么修改现有的代码来画一个三angular形呢? _colorDotLayer = [CALayer layer]; CGFloat width = self.bounds.size.width-6; _colorDotLayer.bounds = CGRectMake(0, 0, width, width); _colorDotLayer.allowsGroupOpacity = YES; _colorDotLayer.backgroundColor = self.annotationColor.CGColor; _colorDotLayer.cornerRadius = width/2; _colorDotLayer.position = CGPointMake(self.bounds.size.width/2, self.bounds.size.height/2);

以编程方式在iOS中生成PPT

为了生成PDF文件,我们可以使用Core Graphics。 类似的,是否有任何框架/类可以用于通过代码生成.ppt(功率点演示)文件? 还是有任何第三方框架为此目的。

如何从一个文件创build一个CGPath – 即SVG

是否有可能从给定的文件创build一个CGPath? SVG将是首选,但任何工作。

在iOS中将RGB像素数据高效地复制到屏幕上

我们的产品包含一种软件图像解码器,它主要产生需要快速复制屏幕(我们在iOS上运行)的全帧像素数据。 目前我们使用的是CGBitmapContextCreate,我们直接访问内存缓冲区,然后为每一帧调用CGBitmapContextCreateImage,然后将该位图绘制到屏幕上。 这对于在iPad的视网膜显示器上进行全屏刷新的速度太慢了,但是对于非视网膜设备来说也是可以的。 我们已经尝试了各种基于OpenGL ES的方法,包括使用glTexImage2D和glTexSubImage2D(本质上是渲染纹理),但CPU使用率仍然很高,我们无法获得超过30 FPS的全屏刷新在iPad 3上。问题是,在30 FPS下,CPU使用率接近于100%,只是将像素复制到屏幕上,这意味着我们没有太多的工作来处理我们自己在CPU上的渲染。 我们愿意使用OpenGL或任何可以提供最佳性能的iOS API。 像素数据被格式化为每像素32位的RGBA数据,但我们有一些灵活性… 有什么build议么?

核心graphics圆形图像模糊

我正在使用核心graphics绘制一个圆形图像与这个SO答案的修改实现 这是我的来源: + (UIImage*)circularImageWithRadius:(CGFloat)radius color:(UIColor*)color{ CGRect rect = CGRectMake(0.0f, 0.0f, radius*2, radius*2); UIGraphicsBeginImageContext(rect.size); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetFillColorWithColor(context, color.CGColor); CGContextFillEllipseInRect(context, rect); UIImage* image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return image; } 边缘是模糊的,我不知道为什么(我以为这是什么分辨率的设备是无关紧要,它将工作的开箱即用)。 我试着replaceCGContextFillEllipseInRect(context, rect); 用CGContextFillRect(context, rect); 这也是模糊的。 然后我尝试了CGContextFillRect(context, CGRectMake(0, 0, radius*4, radius*4) ,它完美的工作,清晰的图像和一切(尽pipe是一个方形,而不是一个圆),所以我改回CGContextDrawEllipseInRect(context, CGRectMake(0, 0, radius*4, radius*4)但是这是我的结果: 而使用矩形时,与使用半径* 2时的大小相同,但图像更清晰。 我怎样才能解决我的模糊问题,为什么CGContextFillEllipseInRect不填充预定义的图像矩形?