CGContextSetShadowWithColor问题

时间:2010-07-12 05:05:15

标签: multithreading

请先查看代码:

  UIGraphicsBeginImageContext(self.view.frame.size);
  contextRef=UIGraphicsGetCurrentContext();
  CGContextSetLineCap(contextRef, kCGLineCapRound);
  CGContextSetLineWidth(contextRef, brushWidth);
  CGContextSetRGBStrokeColor(contextRef, 1.0, 1.0, 1.0, 1.0);    

  CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
  CGColorRef glowColor = CGColorCreate( colorSpace, colorValues );
  CGContextSetShadowWithColor( contextRef,CGSizeMake( 0.0, 0.0 ), 100.0f, glowColor );
  //CGContextSetShadow(contextRef, CGSizeMake(0.0, 0.0),100.0f);
  CGContextBeginPath(contextRef);

  while (beginY<ensdY) {
      //brushWidth=brushWidth-.05;
      CGContextMoveToPoint(contextRef, beginX, beginY);
      CGContextAddLineToPoint(contextRef,nextX,nextY);

      beginX=nextX;beginY=nextY;
      nextY=nextY+10;
      if (arc4random()%3==0) {
          nextX=nextX+arc4random()%10;
      } 
      else {
          nextX=nextX-arc4random()%10;
      }
  }

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

定期调用此代码。

在模拟器中一切正常,但是当我将它安装到iPhone上时它变得很慢。我发现这是CGContextSetShadowWithColor,但不知道为什么。

2 个答案:

答案 0 :(得分:0)

这是在黑暗中刺伤 - 但也许尝试CGColorRelease(glowColor);

答案 1 :(得分:0)

我测试了CGContextSetShadowWithColor,它确实变得很慢,模糊值为50.你的模糊值是100,这可能会产生减速效果。