How to draw an airbrush on a UIImageView?

I am starting to work on the paint application on iphone.

adding a new tool for my iphone application called airbrush ...

which will spray to UIImageView. can someone help me how to work with this.

+3
source share
2 answers

I think you can look for CGContextBeginPathrelated functions as well. I'm not quite sure how to define a new stroke, but I believe that it can be handled with something like [UIColor colorFromImage:myImage]. You should look into Quartz 2D, try here .

/Thomas

0
source
Logic for air brush.........

- (UIBezierPath *)pathFromPoint:(CGPoint)start toPoint:(CGPoint)end {

    CGFloat lineWidth=10;
    redrawRect = CGRectMake(end.x-lineWidth,end.y-lineWidth,lineWidth*2,lineWidth*2);
    UIBezierPath *bezierPath = [UIBezierPath bezierPath];
    UIBezierPath *circle = [UIBezierPath bezierPathWithOvalInRect:redrawRect];
    NSInteger i, x, y;

    NSInteger modNumber =4*(int)lineWidth;
    for (i = 0; i < (lineWidth*lineWidth)/2; i++) {
        do {
            x = (random() % modNumber)+end.x - 2*lineWidth;
            y = (random() % modNumber)+end.y - 2*lineWidth;
        } while (![circle containsPoint:CGPointMake(x,y)]);

        [bezierPath appendPath:[UIBezierPath bezierPathWithRect:CGRectMake(x,y,0.5,0.5)]];
    }
    return bezierPath;
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];   
    currentPoint = [touch locationInView:self.view];
    currentPoint.y -=20;
    [self drawCircle];
}
-(void)drawCircle{
    UIGraphicsBeginImageContext(self.drawImage.frame.size);
    [drawImage.image drawInRect:CGRectMake(0,0, drawImage.frame.size.width, drawImage.frame.size.height)]; //originally self.frame.size.width, self.frame.size.height)];
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(),10);
    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 0.0, 0.0, 0.0, 1.0);
    UIBezierPath *path=[self pathFromPoint:currentPoint 
                                   toPoint:currentPoint];
    [path stroke];
    lastPoint = currentPoint;
    CGContextStrokePath(UIGraphicsGetCurrentContext());
    CGContextFlush(UIGraphicsGetCurrentContext());
    drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
}
+6
source

Source: https://habr.com/ru/post/1758154/


All Articles