Во-первых, есть удобный метод установки цвета заливки и обводки:
[[UIColor blackColor] setStroke];
[[UIColor clearColor] setFill];
либо то, либо использование CGContextSetGrayFillColor
и CGContextSetGrayStrokeColor
.
Что касается вашей проблемы, чтобы получить информацию о пикселях, вы должны использовать CGBitmapContext
.Вы можете получить растровое изображение по CGBitmapContextGetData
.Предположим, что вы объявляете растровое изображение RGBA, растровые данные будут упорядочены как
RGBA_at_(0,0) RGBA_at_(1,0) ... RGBA_at_(w,0) RGBA_at(0,1) RGBA_at_(1,1) ...
, поэтому вы можете сканировать линейно для любых значений целевого цвета и определять черные пиксели.обратите внимание, что UIGraphicsGetCurrentContext()
не обязательно является CGBitmapContext
, поэтому вы не должны применять CGBitmapContextGetData
к нему.Вместо этого вам нужно создать свой собственный растровый контекст с CGBitmapContextCreate
, нарисовать текст в этом растровом контексте, получить результат CGImage с помощью CGBitmapContextCreateImage
и, наконец, нарисовать этот CGImage на UIContext.