Обводка контуров с использованием цвета рисунка для имитации текстуры кисти - PullRequest
6 голосов
/ 23 ноября 2011

Я создаю приложение для рисования пальцем, и мне трудно придать кисточке приятное ощущение и текстуру кисти.

У меня есть этот код:

    UIColor * brushTexture = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Brush_Black.png"]]; 
    CGContextSetStrokeColorWithColor(UIGraphicsGetCurrentContext(), brushTexture.CGColor); 

но мой вывод такой:
Image of Mouse

Текстура моей кисти выложена плиткой. Как я могу сделать так, чтобы он соответствовал размеру обводки и остановил мозаику изображения?

1 Ответ

7 голосов
/ 24 февраля 2012

Здесь я нашел решение!

    UIImage *texture = [UIImage imageNamed:"brush.png"]    
    CGPoint vector = CGPointMake(currentPoint.x - endPoint.x, currentTPoint.y - endPoint.y);
    CGFloat distance = hypotf(vector.x, vector.y);
    vector.x /= distance;
    vector.y /= distance;
    for (CGFloat i = 0; i < distance; i += 1.0f) {
        CGPoint p = CGPointMake(endPoint.x + i * vector.x, endPoint.y + i * vector.y);
        [texture drawAtPoint:p blendMode:blendMode alpha:0.5f];
    }
...