Я хотел бы создать объект UIImage из текущего графического контекста. Более конкретно, мой вариант использования - это представление, что пользователь может нарисовать строки. Они могут увеличиваться постепенно. После того, как все будет готово, я хотел бы создать UIImage, чтобы представить их рисунок.Как создать UIImage из текущего графического контекста?
Вот что DrawRect: выглядит для меня сейчас:
- (void)drawRect:(CGRect)rect
{
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSaveGState(c);
CGContextSetStrokeColorWithColor(c, [UIColor blackColor].CGColor);
CGContextSetLineWidth(c,1.5f);
for(CFIndex i = 0; i < CFArrayGetCount(_pathArray); i++)
{
CGPathRef path = CFArrayGetValueAtIndex(_pathArray, i);
CGContextAddPath(c, path);
}
CGContextStrokePath(c);
CGContextRestoreGState(c);
}
... где _pathArray имеет тип CFArrayRef и заполняется каждый раз touchesEnded: вызывается. Также обратите внимание, что drawRect: может вызываться несколько раз, как пользователь рисует.
Когда пользователь будет выполнен, я хотел бы создать объект UIImage, который представляет графический контекст. Любые предложения о том, как это сделать?
Оба из ответов ниже работы. Обратите внимание, что между ними существует функциональная разница, которая заключается в том, что рендеринг слоя в контексте изображения также отображает фон слоя; call drawRect: прямо нет (в моем случае это не имеет значения). Я перехожу к подходу CALayer renderInContext из-за сложности с вызовом drawRect: напрямую (подробнее см. Http://lists.apple.com/archives/Cocoa-dev/2002/Apr/msg01846.html). Благодаря! – figelwump