Ошибка при рисовании линии с помощью Quartz 2D с альфа-свойством <1.0 на iPhone - PullRequest
0 голосов
/ 14 мая 2010

Этот код я использую для рисования в своем приложении.Так что у меня есть проблема, если я рисую с альфа-свойством = 1. Это очень хорошо, но если я изменяю альфа-свойство = 0,2, тогда моя краска не очень хорошая.Как мне улучшить с альфа-свойством = 0.2.

http://www.flickr.com/photos/9601621@N05/page1/

Рисовать с альфа = 1: это хорошо Рисовать с альфа = 0.2: это плохо

    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
 if ([self.view superview] && (headerView.frame.origin.y == -30)) {
  mouseSwiped = YES;

  UITouch *touch = [touches anyObject]; 
  CGPoint currentPoint = [touch locationInView:self.view];
  currentPoint.y -= 20;



  UIGraphicsBeginImageContext(self.view.frame.size);

  CGContextRef context = UIGraphicsGetCurrentContext();

  [drawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
  CGContextSetLineCap(context, kCGLineCapRound);
  CGContextSetLineWidth(context, currentBrushProperty.brushSize);
  CGContextSetRGBStrokeColor(context, [self red], [self green], [self blue], currentBrushProperty.brushTransparency);
  CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0);

  CGContextBeginPath(context);
  CGContextMoveToPoint(context, lastPoint.x, lastPoint.y);
  CGContextAddLineToPoint(context, currentPoint.x, currentPoint.y);

  CGContextStrokePath(context);
  drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();

  lastPoint = currentPoint;

 }}

1 Ответ

0 голосов
/ 14 мая 2010

Ваша проблема в том, что вы рисуете серию полупрозрачных кругов - по одному на каждое место, где зарегистрировано касание.Самым простым решением может быть рисование со 100% альфа, а затем настройте альфа цветной области обратно на альфу, который вы хотите.

...