iphone:使用Core Graphics重写GLPaint
我想重写Apple源代码,GLPaint应用程序,但不使用像OpenGL这样的例子,我想使用Core Graphics库。 但我坚持像GLPaint那样展示纹理。
这是我在Core Graphics中的代码:
- (void) drawLineFromPoint: (CGPoint) fromPoint toPoint: (CGPoint) toPoint { UIGraphicsBeginImageContext(self.frame.size); CGContextRef context = UIGraphicsGetCurrentContext(); [drawImage.image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; UIImage * image = [UIImage imageNamed:@"Particle.png"]; UIColor * color = [UIColor colorWithPatternImage:image]; CGContextSetStrokeColorWithColor(context, color.CGColor); CGContextSetLineCap(context, kCGLineCapRound); CGContextSetLineWidth(context, 5.0); CGContextBeginPath(context); CGContextMoveToPoint(context, fromPoint.x, fromPoint.y); CGContextAddLineToPoint(context, toPoint.x, toPoint.y); CGContextStrokePath(context); drawImage.image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); }
—但是我得到了这个结果:
—我希望得到这样的结果:
我的代码错了吗? 任何人都可以帮助我吗? 非常感谢你。
如果您不想要图案,请不要将图案图像的颜色设置为笔触颜色。
代替
UIImage * image = [UIImage imageNamed:@"Particle.png"]; UIColor * color = [UIColor colorWithPatternImage:image];
做就是了
UIColor *color = [UIColor blackColor];
请确保将Particle.png添加到项目中。 还要检查GLPaint代码中的常量kBrushScale和kPalette * 。
- 在iOS中使用UIImage或CGImage API可以掩盖这种types
- iOS:禁用反弹滚动,但允许正常滚动
- 在Grand Central Dispatch中使用串行队列的dispatch_async与dispatch_sync
- 在IOS中触发触摸时,HTML5 Web SQL事务将跳过而不会发生错误
- 在UIActionSheet中添加UIPickerView时,iOS 7上的无效上下文错误?
- 从XCode中的.strings文件读取字符串
- 如何从iPhone应用程序(在Swift中)发布图片到MySQL数据库?
- 如何修复泄漏CVPixelBuffer
- 当YouTubevideo结束或完成button按下时捕捉iOS事件